枚举
自带类型的对象(自己有类型,就是一个对象)
数字枚举
默认情况下,从0开始为元素编号
ts
enum Direction {
Up,
Down,
Left,
Right,
}
console.log(Direction.Up) // 0
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
数字枚举还做了反向映射,可以把枚举看成一个数组
ts
console.log(Direction[0]) // Up
1
支持手动赋值,Up
使用初始化为10,其余的成员会从 10
开始自动增长
ts
enum Direction {
Up = 10,
Down,
Left,
Right,
}
1
2
3
4
5
6
2
3
4
5
6
字符串枚举
在一个字符串枚举里,每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。
ts
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
console.log(Direction.Up) // UP
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
异构枚举
枚举中不光有数字,还有字符串
ts
enum Direction {
Up = 1,
Down = "DOWN"
}
1
2
3
4
2
3
4
常量枚举
常量枚举通过在枚举上使用 const
修饰符来定义。
常量枚举不会被额外编译成对象,所以更节约
ts
const enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
1
2
3
4
5
6
2
3
4
5
6