五、枚举和泛型
接下来我们将学习TypeScript 中的两个重要主题:枚举(Enums)和泛型(Generics)。这两个特性能大大提高代码的可重用性和安全性。
1.枚举
枚举是 TypeScript 中一种特殊的数据类型,允许我们为一组数值设定友好的名字。枚举的定义使用 enum 关键字。
enum Direction { Up = 1, Down, Left, Right,}
在这个例子中,我们定义了一个名为 Direction 的枚举,它有四个成员:Up、Down、Left 和 Right。Up 的初始值为 1,其余成员的值会自动递增。
除了使用数值,我们也可以使用字符串:
enum Direction { Up = "UP", Down = "DOWN", Left = "LEFT", Right = "RIGHT",}
此外,TypeScript 还支持计算的和常量成员。常量枚举通过 const enum 进行定义,TypeScript 会在编译阶段进行优化:
const enum Enum { A = 1, B = A * 2}
2.异构枚举
TypeScript 支持数字和字符串混用的枚举,这种类型的枚举被称为异构枚举:
enum BooleanLikeHeterogeneousEnum { No = 0, Yes = "YES",}
尽管 TypeScript 支持这种用法,但我们在实际项目中应尽可能避免使用异构枚举,因为这会引入不必要的复杂性。
3.枚举成员的类型
在某些特殊的情况下,枚举成员本身也可以作为一种类型:
enum ShapeKind { Circle, Square,} interface Circle { kind: ShapeKind.Circle; radius: number;} interface Square { kind: ShapeKind.Square; sideLength: number;}
带你读《现代TypeScript高级教程》五、枚举和泛型(2)https://developer.aliyun.com/article/1348552?groupCode=tech_library