Skip to content

enum 枚举

枚举(enum)可以为一组数值定义一个友好的名字,使用枚举能够让代码更加清晰易懂,增强代码的可读性和维护性,并且枚举成员就成为了类型

WARNING

在 typescript 5.8 开始,不建议使用枚举,而是使用 const as const 来代替

ts
const Position = {
  TOP: "TOP",
  BOTTOM: "BOTTOM",
} as const;

1、基本使用

enum Direction {
  Up,
  Down,
  Left,
  Right
}

在默认情况下,枚举的成员会被赋值从 0 开始的数字,也可以定义开始值,对 Up 进行初始化为 1,则其他的成员会从 1 开始增长

2、字符串枚举

enum Direction {
	Up = "UP",
	Down = "DOWN",
	Left = "LEFT",
	Right = "RIGHT"
}

通过字符串枚举能够有更好的可读性,也能让简单代表复杂的字符

3、异构枚举

虽然不常见,但 TypeScript 允许枚举包含字符串和数字成员。不建议使用

enum Boolean {
  No = 0,
  Yes = "YES",
}

4、计算的和常量成员

枚举成员可以是常量或者计算出的结果

enum example {
	None,
	False = 1 - 1,
	len = "1234".length
}

5、const 枚举

为了避免生成额外的代码和额外的对枚举对象的访问,我们可以使用 const 枚举。常量枚举在编译阶段会被删除,并且不能包含计算成员

const enum Direction {
  Up,
  Down,
  Left,
  Right
}

let directions = [Direction.Up, Direction.Down, Direction.Left, Direction.Right];

基于 MIT 许可发布