On this page

TypeScript 枚举

枚举一种特殊的“类”,代表一组常量(不可改变的变量)。 枚举有两种形式stringnumeric让我们从数字开始。


数字枚举 - 默认

默认情况下,枚举将初始化第一个值,0并将每个附加值加 1:

例子

enum CardinalDirections {
  North,
  East,
  South,
  West
}
let currentDirection = CardinalDirections.North;
// logs 0 
console.log(currentDirection);
// throws error as 'North' is not a valid enum 
currentDirection = 'North'; // Error: "North" is not assignable to type 'CardinalDirections'.

数字枚举 - 已初始化

您可以设置第一个数字枚举的值并让其从该值自动递增:

例子


enum CardinalDirections {
  North = 1,
  East,
  South,
  West
}
// logs 1 
console.log(CardinalDirections.North);
// logs 4 
console.log(CardinalDirections.West);

数字枚举 - 完全初始化

您可以为每个枚举值分配唯一的数值。这样值就不会自动增加:

例子

enum StatusCodes {
  NotFound = 404,
  Success = 200,
  Accepted = 202,
  BadRequest = 400
}
// logs 404 
console.log(StatusCodes.NotFound);
// logs 200 
console.log(StatusCodes.Success);

字符串枚举

枚举还可以包含strings。这比数字枚举更常见,因为它们更易读且有目的性。

例子

enum CardinalDirections {
  North = 'North',
  East = "East",
  South = "South",
  West = "West"
};
// logs "North"
console.log(CardinalDirections.North);
// logs "West" 
console.log(CardinalDirections.West);

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