0
点赞
收藏
分享

微信扫一扫

Typescript异构型和常量枚举

异构型枚举

我们将一个枚举中同时定义数值型枚举成员和字符串枚举成员的类型枚举称为异构型枚举。在这个异构型枚举时,不允许使用计算的值作为枚举成员的初始值。而且必须为紧跟在字符串枚举成员之后的数值枚举成员指定一个初始值。但是无论使用哪种类型的枚举,都可以通弄过枚举成员去访问枚举成员值。但是对于数值型枚举,不但可以通过枚举成员名来获取枚举成员值,而且还可以反过来通过枚举成员值去获取枚举成员名。但是字符串枚举和异构型枚举都不能够通过枚举成员值去获取枚举成员名。

enum Zss {
age = 18,
study = "web"
}

常量枚举

我们可以根据枚举成员值将枚举分为常量枚举成员和计算枚举成员。其中如果枚举类型的第一个枚举成员没有定义初始值,那么这个枚举成员是常量枚举成员并且初始值为0。如果当枚举成员没有定义初始值并且与之紧邻的前一个枚举成员值是数值型常量,那么这个枚举成员是常量枚举成员并且初始值为紧邻的前一个枚举成员值加1,但是如果紧邻的前一个枚举成员的值不是数值型常量,那么就会出现错误。常量枚举表达式需要注意的规则有很多,比如常量表达式是对前面定义的常量枚举成员的引用,而且可以是用分组运算符包围起来的常量枚举表达式。表达式中可以使用一元运算符,但是操作数必须为常量枚举表达式。也可以为二元运算符,两个操作数必须为常量枚举表达式。常量枚举表达式也可以是数字字面量、字符串字面量以及不包含替换值的模板字面量。字面量枚举成员是常量枚举成员的子集。除了常量枚举成员之外的其他枚举成员都属于计算枚举成员。

enum Zss {
B, // 0
}

举报

相关推荐

0 条评论