在TypeScript(TS)中,enum 是一种用于定义命名常量集合的数据类型。它允许你将一组相关的常量值封装在一个容器内,以提高代码的可读性和可维护性。下面是如何使用 TypeScript 中的 enum 的示例以及一些相关的重要概念:
- 创建枚举:
使用 enum 关键字来创建枚举。例如,创建一个表示一周中的天的枚举:
enum DaysOfWeek {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY,
}
在这个例子中,DaysOfWeek 枚举包含了一组常量值,这些值默认从0开始递增,因此 DaysOfWeek.MONDAY 的值是0,DaysOfWeek.TUESDAY 的值是1,依此类推。
- 使用枚举:
你可以使用枚举值来声明变量、函数参数、函数返回值等等。例如:
let today: DaysOfWeek = DaysOfWeek.WEDNESDAY;
function getDayName(day: DaysOfWeek): string {
switch (day) {
case DaysOfWeek.MONDAY:
return "Monday";
case DaysOfWeek.TUESDAY:
return "Tuesday";
// ...
default:
return "Unknown";
}
}
console.log(getDayName(today)); // 输出: "Wednesday"
- 自定义枚举值:
你可以为枚举中的常量值指定自定义的值:
enum Color {
RED = 1,
GREEN = 2,
BLUE = 3,
}
let selectedColor: Color = Color.GREEN;
console.log(selectedColor); // 输出: 2
在这个示例中,Color 枚举中的值被显式赋予了数字,而不是默认的递增值。
- 反向映射:
TypeScript 自动生成了枚举值到名称的反向映射。这意味着你可以通过枚举的值来获取其名称,如下所示:
let dayName: string = DaysOfWeek[1];
console.log(dayName); // 输出: "MONDAY"
- 常量枚举:
如果在编译时知道枚举值永远不会被改变,你可以将枚举标记为 const,以启用 TypeScript 的常量折叠优化:
const enum Direction {
UP,
DOWN,
LEFT,
RIGHT,
}
let direction: Direction = Direction.UP;
常量枚举在编译后不会生成真正的 JavaScript 枚举,而是将枚举值直接嵌入到生成的 JavaScript 代码中,以减小输出文件的大小。
1574

被折叠的 条评论
为什么被折叠?



