TypeScript 枚举
Enum(枚举)是一种特殊的“类”,用于表示一组常量(不可变变量)。
枚举有两种形式:string
(字符串)和 numeric
(数字)。我们先从数字枚举开始。
数字枚举 - 默认
默认情况下,枚举会将第一个值初始化为 0
,后续值依次递增。
示例
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);
自己动手试一试 »
字符串枚举
枚举也可以包含字符串
。这比数字枚举更常见,因为它们具有更好的可读性和意图。
示例
enum CardinalDirections {
North = 'North',
East = "East",
South = "South",
West = "West"
};
// 输出 "North"
console.log(CardinalDirections.North);
// 输出 "West"
console.log(CardinalDirections.West);
自己动手试一试 »
严格来说,您可以混合使用字符串和数字枚举值,但建议不要这样做。