TypeScript与JavaScript不同之处系列 ===;枚举
Posted 刘翾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeScript与JavaScript不同之处系列 ===;枚举相关的知识,希望对你有一定的参考价值。
本系列目的: 列出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://blog.csdn.net/c_kite/article/details/85380924
- 8.高级类型 https://blog.csdn.net/c_kite/article/details/85457753
- 9.命名空间, 三斜线指令 https://blog.csdn.net/c_kite/article/details/85524576
文章目录
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"
以上是关于TypeScript与JavaScript不同之处系列 ===;枚举的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript与JavaScript不同之处系列 ===; 类
TypeScript与JavaScript不同之处系列 ===; 函数
TypeScript与JavaScript不同之处系列 ===; 泛型
TypeScript与JavaScript不同之处系列 ===;枚举