枚举类型
在 TypeScript 中,枚举类型是一种特殊的类型,允许您为一组相关的值赋予友好的名字。它常用于表示数字常量。
定义枚举类型
在 TypeScript 中,使用 enum
关键字定义枚举类型。
enum Direction {
Up,
Down,
Left,
Right
}
在这个例子中,Direction
是一个枚举类型,包含四个值:Up
、Down
、Left
和 Right
。这些值默认映射到数字,Up
映射到 0
,Down
映射到 1
,Left
映射到 2
,Right
映射到 3
。
枚举值的数字映射
可以通过在枚举值后面添加数字来指定映射值。
enum Direction {
Up = 1,
Down,
Left,
Right
}
在这个例子中,Up
映射到 1
,Down
映射到 2
,Left
映射到 3
,Right
映射到 4
。
枚举值的字符串映射
枚举类型默认是数字映射,但也可以定义为字符串映射。
enum Color {
Red = "RED",
Green,
Blue
}
在这个例子中,Color
是一个字符串枚举类型,Red
映射到 "RED"
,Green
映射到 "GREEN"
,Blue
映射到 "BLUE"
。
使用枚举类型
枚举类型可以用作变量的类型。
let direction: Direction;
direction = Direction.Up;
在这个例子中,direction
是一个 Direction
类型的变量,并赋值为 Direction.Up
。
常量枚举
常量枚举(const enum
)是一种特殊的枚举类型,其枚举值在编译时就会被优化掉,不会产生额外的运行时成本。
定义常量枚举
在 TypeScript 中,使用 const enum
关键字定义常量枚举类型。
const enum Direction {
Up,
Down,
Left,
Right
}
在这个例子中,Direction
是一个常量枚举类型,包含四个值:Up
、Down
、Left
和 Right
。
使用常量枚举
常量枚举类型可以用作变量的类型,但变量只能被赋值为枚举值,而不能被赋值为枚举值对应的数字。
let direction: Direction;
direction = Direction.Up; // 正确
direction = 1; // 错误
在这个例子中,direction
是一个 Direction
类型的变量,并赋值为 Direction.Up
。尝试将 direction
赋值为 1
会导致编译错误。
编译结果
常量枚举在编译时会被优化掉,不会生成额外的运行时代码。
// 编译结果
let direction = 0; // Up
在这个例子中,direction
编译后变成了 0
,表示 Direction.Up
。
常量枚举类型是一种优化手段,用于在编译时删除不必要的运行时开销,适用于那些不需要在运行时访问的枚举值。
上一章:映射类型与条件类型应用 下一章:字面量类型与索引签名