TypeScript 枚举

枚举是一个特殊的"类",代表一组常量(不可更改的变量)。

枚举有两种风格:stringnumeric。 让我们从数字开始。


数字枚举 - 默认

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

实例

enum CardinalDirections {
  North,
  East,
  South,
  West
}
let currentDirection = CardinalDirections.North;
// logs 0
console.log(currentDirection);
// 抛出错误,因为"North"不是有效的枚举
currentDirection = 'North'; // 错误:"North"不可分配给类型"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);
亲自试一试 »

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


TypeScript 练习

学习训练

训练:

创建一个名为 myEnum 的枚举,其中包含 2 个具有默认值的常量(myFirstConst、mySecondConst):

enum  {
,

};

开始训练