ts的枚举实现代码什么意思?

var Days;
(function (Days) {
    Days[Days["Sun"] = 0] = "Sun";
    Days[Days["Mon"] = 1] = "Mon";
    Days[Days["Tue"] = 2] = "Tue";
    Days[Days["Wed"] = 3] = "Wed";
    Days[Days["Thu"] = 4] = "Thu";
    Days[Days["Fri"] = 5] = "Fri";
    Days[Days["Sat"] = 6] = "Sat";
})(Days || (Days = {}));
阅读 2.9k
3 个回答

枚举编译后就是一个普通对象,只是这些键值有一个反向映射。

const Days = {}

Days[0] = 'Sun'
Days.Sun = 0

就是KV双向映射,Days既可以Days.Sun获取到枚举值0,也可以反向Days[Days.Sun]获取到"Sun"这个枚举值0对应的key,就是方便你获取keyvalue;具体到JS代码上就是知道赋值语句本身也有返回值就能理解了,就是比如Days["Sun"] = 0]这条赋值语句执行后的结果也是有返回值的,返回值就是赋值的那个值,相当于将通常是两行代码的语句糅合成一条,等价于Days["Sun"] = 0; Days[0] = "Sun";

枚举包含七个成员,表示从星期日到星期六,每个都有对应的数字,例如 Sun 的值是 0,Mon 的值是 1
使用:

const today: Days = Days.Wed; // 将今天设定为星期三

if (today === Days.Wed) {
    console.log("今天是星期三!");
} else {
    console.log("今天不是星期三。");
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏