一、数字枚举的特点
- 数字枚举可以使用字面量、常量、以及计算的结果可以作为数字枚举赋值。
- 使用常量赋值、其后面添加的枚举值也需要进行赋值。
- 计算结果与使用常量赋值一样,后面添加的枚举值也需要进行赋值。
- 数字枚举可以进行反向映射。
二、字符串枚举
字符串枚举与常量数字枚举一样,第一个赋值后,其后的枚举值也需要进行赋值。
- 字符串枚举不可以进行变量和计算结果赋值
- 字符串枚举中的枚举值可以使用其他的枚举值进行赋值。
三、异构枚举
既存在数字枚举也存在字符串枚举,
- 无法通过原始值来获取枚举值。
四、枚举成员类型
枚举可用来作为类型进行使用。
- 使用数字枚举时,接口定义枚举,在类中声明时,可以用任何数字进行替代。
- 使用字符串枚举作为类型时,无法用字符串进行代替。
五、联合枚举
使用枚举类型进行赋值,那么在声明的时候可以用使用其中的任何一个枚举值作为其类型。
enum Sum{
Male='male',
Female=6,
Str=Male,
}
let str=2;
function say(){
return 4
}
enum All{
Male=str,
Female=say(),
a=6
}
//枚举成员类型和枚举联合类型
enum Num{
Male=0,
Female=1
}
interface setNum{
age:Num.Male
}
// class Person implements setNum{
// age:Num.Male
// }
class Person implements setNum{
age:0 //字符串枚举不可以用字符串来定义类型
}
enum Num{
Male=0,
Female=1
}
interface setNum{
age:Num
}
class Person implements setNum{
age:Num.Male
}
六、运行时枚举
- 接口不可以在运行时使用,枚举可以在运行时使用。
常量枚举
常量枚举在运行时实质上是将枚举值直接进行替换。
// 枚举时一个真实存在的对象可以在运行的时候使用,接口不是真实存在,运行时无法使用。
// 常量枚举
const enum Sum{
male,
female
}
// 常量时运行时将枚举值用他的数值进行替换,不是正式存在,可用来使用从而减少网页体积