枚举类型

枚举类型在 TypeScript 中是一种特殊的类型,它定义了一个命名的常数集合。枚举可以用来定义一组相关的值,这些值通常被用来表示一组有限的可能状态或配置。

数字枚举

数字枚举默认从 0 开始自动编号。

1enum Direction {
2	Up,
3	Down,
4	Left,
5	Right,
6}
7
8console.log(Direction.Up) // 0

数字枚举支持反向映射,使得可以通过值查找枚举成员。

1console.log(Direction[0]) // Up

可以手动为枚举成员赋值,未手动赋值的成员将按顺序自动递增。

1enum Direction {
2	Up = 10,
3	Down,
4	Left,
5	Right,
6}
7
8console.log(Direction.Down) // 11

字符串枚举

字符串枚举要求每个成员必须用字符串字面量或另一个字符串枚举成员进行初始化。

1enum Direction {
2	Up = "UP",
3	Down = "DOWN",
4	Left = "LEFT",
5	Right = "RIGHT",
6}
7
8console.log(Direction.Up) // UP

异构枚举

异构枚举可以包含数字和字符串。

1enum Direction {
2	Up = 1,
3	Down = "DOWN"
4}

常量枚举

使用 const 修饰符定义的常量枚举不会被编译成对象,因此更加节省资源。

1const enum Direction {
2	Up = "UP",
3	Down = "DOWN",
4	Left = "LEFT",
5	Right = "RIGHT",
6}

在常量枚举中,成员名不会被输出到编译后的代码中,只能通过它们的值来访问。