数字枚举
enum week {
Sun,//默认为0,后面元素自增
Mon,//默认为1
Tue,//默认为2
Wed,//默认为3
Thu,//默认为4
Fri,//默认为4
Sat//默认为6
}
enum Days {
Sun = 1,//设置1时,后面元素自增
Mon,//默认为2
Tue,//默认为3
Wed,//默认为4
Thu,//默认为5
Fri,//默认为6
Sat//默认为7
}
字符串枚举(不常用)
enum person{
a="lid",
b="kkk",
c="mmm"
}
异构枚举(很少用)
enum person{
a=28,
b="kkk",
c="mmm"
}
枚举编译后会变成一个双向的键值对对象,会入侵到编译后的代码如:
编译前:
enum week {
Sun,//默认为0,后面元素自增
Mon,//默认为1
Tue,//默认为2
Wed,//默认为3
Thu,//默认为4
Fri,//默认为4
Sat//默认为6
}
编译后:
var Days;
(function (Days) {
Days[Days["Sun"] = 1] = "Sun";
Days[Days["Mon"] = 2] = "Mon";
Days[Days["Tue"] = 3] = "Tue";
Days[Days["Wed"] = 4] = "Wed";
Days[Days["Thu"] = 5] = "Thu";
Days[Days["Fri"] = 6] = "Fri";
Days[Days["Sat"] = 7] = "Sat"; //默认为7
})(Days || (Days = {}));
//可使用所引器获取枚举值
person[0]
//代码当中确定不使用索引器,可使用常量枚举,编译时不会编译为上述所对应的双向的键值对对象的代码,
//代码被移除掉了
const enum person{
a=28,
b="kkk",
c="mmm"
}
任意类型any,接受任意类型的值,尽量避免使用any
//可接受任意类型的值,中间运行时可以改变值的类型
let a:any = 1;
let b:any = function (){
};
let str:any = "kdfoe";
a = "seer"