TypeScript 枚举
枚举 是一个特殊的 "类",表示一组常量(不可更改的变量)。
枚举有两种类型:字符串 和 数字。
让我们从数字开始。
数字型枚举 - 默认
默认情况下,枚举会将第一个值初始化为 0,并为每个附加值加 1:
实例
enum CardinalDirections {
North,
East,
South,
West
};
let currentDirection = CardinalDirections.North;
// North 是第一个值,所以输出 '0'
console.log(currentDirection);
// 当 'North' 不是有效的枚举时引发错误
// currentDirection = 'North';
// Error: "North" is not assignable to type 'CardinalDirections'.
数字型枚举 - 初始化
您可以设置第一个数字枚举的值,并使其自动递增:
实例
enum CardinalDirections {
North = 1,
East,
South,
West
};
// 输出 1,因为我们将第一个值初始化为 "0" 以外的值
console.log(CardinalDirections.North);
// 输出 4,因为是从 1" 开始的
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);
字符串枚举
枚举也可以包含 字符串。由于其可读性更强,所以比数字枚举更常见。
实例
enum CardinalDirections {
North = 'North',
East = "East",
South = "South",
West = "West"
};
// logs "North"
console.log(CardinalDirections.North);
// logs "West"
console.log(CardinalDirections.West);
从技术上讲,您可以混合使用字符串和数字枚举值,但不建议这样做。