简介
Enum是为了消除魔法数字而存在的
const resultData={sex:0};//后端返回的数据
//以前的写法
if(resultData==0){
//***
}
//Enum的写法
enum SexEnum{
male,
female
}
if(resultData.sex==SexEnum.male){
//***
}
enum也是键值对形式存在的,如果值不写那就从0开始,依次往后推
enum SexEnum{
male,
female
}
//转换为js
let male=0,female=1;
enum既是类型也是值,也是ts中为数不多的转换为js能留下痕迹的指令
只读
enum是只读的,定义后无法被修改
enum SexEnum{
male,
female
}
SexEnum.male=1;//报错
值
enum SexEnum{
male,//0
female//1
}
enum SexEnum{
male=5,
female//6
}
enum SexEnum{
male=5,
female=5
}
可以手动赋值 后边的值如果没指定自动加1,成员可以是相同的值,值只能是数值或字符串
同名合并
enum Person{
name='张三'
}
enum Person{
age=18
}
//相当于是
enum Person{
name='张三',
age=18
}
反向映射
可以通过值取属性名,类型数组的写法。
enum Person{
name='张三',
age=18,
}
console.log(Person[0]);//undefined
console.log(Person['张三']);//undefined
console.log(Person[18]);
可以看到只能拿值是数字的属性,