接上一篇:TypeScript实例讲解(十三)
本篇内容:枚举类型。
枚举类型是 TypeScript 中一种常见的类型。使用枚举我们可以定义一些带名字的常量。使用枚举可以清晰地表达意图或创建一组有区别的用例。
数字枚举
// 例 1
function getState(state) {
if (state === 0) {
return 'NORMAL'
} else if (state === 1) {
return 'LATE'
} else if (state === 2) {
return 'ABSENT'
}
}
在 TypeScript 中我们可以更优雅地来写这段代码,TypeScript提供了一个 enum 语法,也就是枚举类型,大家以前可能在其他语言中听说过枚举类型,现在 TypeScript 中也可以使用枚举类型。
定义枚举类型
// 例 2
enum Status {
NORMAL, // 正常
LATE, // 迟到
ABSENT // 缺席
}
例2通过 enum 关键字定义了一个枚举类型,NORMAL 的值为0,LATE 的值为1,ABSENT 的值为2。
使用枚举类型
// 例 3 (接例2)
Status.LATE; // 1
Status[1]; // LATE 反向映射出类型的名称
使用枚举很简单:通过枚举的属性来访问枚举成员,另外也可以通过枚举的名字来访问枚举类型。
设置初始值
// 例 4
enum Status {
NORMAL = 1, // 正常
LATE, // 迟到
ABSENT // 缺席
}
枚举成员默认从0开始,依次递增。我们可以使用初始化器并指定初始化的常数,未使用初始化器的成员取值是在上一个成员的基础上加一。如例4中 NORMAL 的值为1,LATE 的值为2,ABSENT 的值为3。
// 例 5
enum Status {
NORMAL, // 正常
LATE = 10, // 迟到
ABSENT // 缺席
}
例5给中间的枚举成员 LATE 指定的常数为10,则 ABSENT 的值为11,那 NORMAL 的值应该为多少呢?答案是 NORMAL 的值依然为0。
字符串枚举
在一个字符串枚举里,每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。
// 例 6
enum Direction {
East = "EAST",
South = "SOUTH",
West = "WEST",
North = "NORTH",
}
字符串枚举没有数字枚举的自增长行为,自然也没有像数字枚举生成方向映射。字符串枚举允许你提供一个运行时有意义的并且可读的值,独立于枚举成员的名字。
本篇完!如果文章对你有一点点帮助,请记得点个赞哦。