TypeScript与JavaScript不同之处系列(六) ===>枚举
2020-04-05 07:15
746 查看
本系列目的: 列出TypeScript与JavaScript的不同点, 缩小文档内容, 提高学习速度. 原文档地址: https://www.tslang.cn/index.html
全系列目录
- 1.基础类型 https://blog.csdn.net/c_kite/article/details/85232021
- 2.接口 https://blog.csdn.net/c_kite/article/details/85262016
- 3.类 https://blog.csdn.net/c_kite/article/details/85274189
- 4.函数 https://blog.csdn.net/c_kite/article/details/85283691
- 5.泛型 https://blog.csdn.net/c_kite/article/details/85335913
- 6.枚举 https://blog.csdn.net/c_kite/article/details/85337336
- 7.类型推论, 类型兼容性 https://www.geek-share.com/detail/2797042155.html
- 8.高级类型 https://www.geek-share.com/detail/2797042153.html
- 9.命名空间, 三斜线指令 https://www.geek-share.com/detail/2797042143.html
文章目录
1. 枚举
1.1. 简单使用
enum Direction { a = 3, b, c, d} // 手动赋值, b c d的值分别为4, 5, 6 enum Direction { a, b, c, d} // 默认赋值, a b c d的值分别为1, 2, 3, 4 // 使用枚举 enum Response { No = 0, Yes = 1, } function respond(recipient: string, message: Response): void { // ... } respond("Princess Caroline", Response.Yes)
1.2. 字符串枚举
每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。
enum Direction { Up = "UP", Down = "DOWN", Left = "LEFT", Right = "RIGHT", }
1.3. 常量枚举
常量枚举只能使用常量枚举表达式,并且不同于常规的枚举,它们在编译阶段会被删除。 常量枚举成员在使用的地方会被内联进来。 之所以可以这么做是因为,常量枚举不允许包含计算成员。
const enum Directions { Up, Down, Left, Right } let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right] // 编译后的的代码为: 可以看到enum没有了 var directions = [0 /* Up */, 1 /* Down */, 2 /* Left */, 3 /* Right */];
1.4. 异构枚举
就是字符串和数字的混合, 官方不建议这么使用
enum BooleanLikeHeterogeneousEnum { No = 0, Yes = "YES", }
1.5. 反向映射
enum Enum { A } let a = Enum.A; let nameOfA = Enum[a]; // "A"
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- TypeScript与JavaScript不同之处系列(九) ===> 命名空间, 三斜线指令
- TypeScript与JavaScript不同之处系列(八) ===> 高级类型
- TypeScript与JavaScript不同之处系列(七) ===>类型推论, 类型兼容性
- 从 JavaScript 到 TypeScript 系列
- 从零开始学_JavaScript_系列(40)——对象的扩展(3)当枚举、原型链遇见对属性的操作
- (三)我的JavaScript系列:不同调用方式的this指向
- 从零开始学_JavaScript_系列(40)——对象的扩展(3)当枚举、原型链遇见对属性的操作
- 事半功倍系列 javascript
- JavaScript面试试题系列一
- javascript系列教程
- 深入理解JavaScript系列(7):S.O.L.I.D五大原则之开闭原则OCP
- JavaScript ,Python,java,C#,Go系列算法之【插入排序篇】
- JavaScript知识夯实系列-5.语句
- 从零开始学_JavaScript_系列(55)——Generator函数(3)yield*表达式
- 深入理解JavaScript系列
- 指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。 int转换枚举不成功
- JavaScript立即执行函数的三种不同写法
- 深入理解JavaScript系列(41):设计模式之模板方法
- 深入理解JavaScript系列(45):代码复用模式(避免篇)
- JavaScript系列:event.bubbles属性(并不是所有的事件都具有冒泡)