TypeScript 枚举

枚举是一种特殊的“类”,表示一组常量(不可更改的变量)。

枚举有两种类型:stringnumeric。我们先从数值类型开始。

数字枚举 - 默认

默认情况下,枚举会将第一个值初始化为 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);

亲自试一试

从技术上讲,您可以混合使用字符串和数值枚举值,但建议不要这样做。