TypeScript 枚举
枚举是一种特殊的“类”,表示一组常量(不可更改的变量)。
枚举有两种类型:string
和 numeric
。我们先从数值类型开始。
数字枚举 - 默认
默认情况下,枚举会将第一个值初始化为 0
,并为每个附加值加 1:
实例
enum CardinalDirections { North, East, South, West } let currentDirection = CardinalDirections.North; // 记录 0 console.log(currentDirection); // 抛出错误,因为'North'不是有效的枚举 currentDirection = 'North'; // 错误:“North”不能分配给类型'CardinalDirections'。
数字枚举 - 已初始化
您可以设置第一个数值枚举的值,并从该值开始自动递增:
实例
enum CardinalDirections { North = 1, East, South, West } // 记录 1 console.log(CardinalDirections.North); // 记录 4 console.log(CardinalDirections.West);
数字枚举 - 完全初始化
您可以为每个枚举值分配唯一的数字值。然后,这些值将不会自动递增:
实例
enum StatusCodes { NotFound = 404, Success = 200, Accepted = 202, BadRequest = 400 } // 记录 404 console.log(StatusCodes.NotFound); // 记录 200 console.log(StatusCodes.Success);
字符串枚举
枚举还可以包含 string
。由于其可读性和意图,这比数字枚举更常见。
实例
enum CardinalDirections { North = 'North', East = "East", South = "South", West = "West" }; // 记录 "North" console.log(CardinalDirections.North); // 记录 "West" console.log(CardinalDirections.West);
从技术上讲,您可以混合使用字符串和数值枚举值,但建议不要这样做。