数字枚举
enum week {Sun,//默认为0,后面元素自增Mon,//默认为1Tue,//默认为2Wed,//默认为3Thu,//默认为4Fri,//默认为4Sat//默认为6}enum Days {Sun = 1,//设置1时,后面元素自增Mon,//默认为2Tue,//默认为3Wed,//默认为4Thu,//默认为5Fri,//默认为6Sat//默认为7}
字符串枚举(不常用)
enum person{a="lid",b="kkk",c="mmm"}
异构枚举(很少用)
enum person{a=28,b="kkk",c="mmm"}
枚举编译后会变成一个双向的键值对对象,会入侵到编译后的代码如:
编译前:
enum week {Sun,//默认为0,后面元素自增Mon,//默认为1Tue,//默认为2Wed,//默认为3Thu,//默认为4Fri,//默认为4Sat//默认为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"