TypeScript 枚举
枚举 是一个特殊的 "类",表示一组常量(不可更改的变量)。
枚举有两种类型:字符串 和 数字。
让我们从数字开始。
数字型枚举 - 默认
默认情况下,枚举会将第一个值初始化为 0,并为每个附加值加 1:
实例
enum CardinalDirections {North,East,South,West};let currentDirection = CardinalDirections.North;// North 是第一个值,所以输出 '0'console.log(currentDirection);// 当 'North' 不是有效的枚举时引发错误// currentDirection = 'North';// Error: "North" is not assignable to type 'CardinalDirections'.
数字型枚举 - 初始化
您可以设置第一个数字枚举的值,并使其自动递增:
实例
enum CardinalDirections {North = 1,East,South,West};// 输出 1,因为我们将第一个值初始化为 "0" 以外的值console.log(CardinalDirections.North);// 输出 4,因为是从 1" 开始的console.log(CardinalDirections.West);
数字型枚举 - 完全初始化
可以为每个枚举值指定唯一的数值。然后这些值不会自动递增:
实例
enum StatusCodes {NotFound = 404,Success = 200,Accepted = 202,BadRequest = 400};// logs 404console.log(StatusCodes.NotFound);// logs 200console.log(StatusCodes.Success);
字符串枚举
枚举也可以包含 字符串。由于其可读性更强,所以比数字枚举更常见。
实例
enum CardinalDirections {North = 'North',East = "East",South = "South",West = "West"};// logs "North"console.log(CardinalDirections.North);// logs "West"console.log(CardinalDirections.West);
从技术上讲,您可以混合使用字符串和数字枚举值,但不建议这样做。