当前位置: 首页 > 知识库问答 >
问题:

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

陈淳
2023-08-18
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 = {}));

共有3个答案

傅玮
2023-08-18

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

const today: Days = Days.Wed; // 将今天设定为星期三if (today === Days.Wed) {    console.log("今天是星期三!");} else {    console.log("今天不是星期三。");}
柴英锐
2023-08-18

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

const Days = {}Days[0] = 'Sun'Days.Sun = 0
羊舌墨一
2023-08-18

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

 类似资料:
  • 在typescript中枚举的用途是什么。如果它的目的仅仅是使代码可编辑,我们就不能使用常量来达到同样的目的吗 如果没有打字检查的好处,就不能写成。

  • 问题内容: 我刚刚发现Java允许枚举实现接口。有什么好的用例? 问题答案: 枚举不仅仅代表被动集(例如颜色)。他们可以代表与功能更复杂的对象,所以你可能想进一步功能添加到这些是那么-例如,你可能如接口,等等。支持这些和组件。

  • 我试图在Enum上做一点反向工程。 接口内的枚举实现-Java

  • 本节介绍枚举类型的定义及其使用,需要定义一组相同主题的常量数据时,应该立即想到枚举类型。在学习过程中,需要注意枚举类型的正向映射和反向映射,可以通过编译后的 JavaScript 源码进行分析,为什么可以进行反向映射。 1. 慕课解释 使用枚举我们可以定义一些带名字的常量。TypeScript 支持数字的和基于字符串的枚举。 2. 定义及使用场景 枚举类型弥补了 JavaScript 的设计不足,

  • 问题内容: 在Java 5及更高版本中,您具有foreach循环,该循环可以神奇地实现任何实现的对象: 但是,仍然没有实现,这意味着要迭代一个,您必须执行以下操作: 有谁知道为什么仍然不执行? 编辑: 为澄清起见,我不是在谈论枚举的语言概念,而是在Java API中称为“ 枚举 ” 的Java特定类。 问题答案: 枚举没有被修改为支持Iterable,因为它是一个接口,而不是一个具体的类(例如Ve

  • 问题内容: 我读了《有效Java》,其中指出最好使用来实现单例。 此方法在功能上等效于公共领域方法,除了它更简洁,免费提供序列化机制,甚至针对复杂的序列化或反射攻击,还提供了针对多重实例化的明确保证。尽管此方法尚未得到广泛采用,但是单元素枚举类型是实现单例的最佳方法。 尽管如此,这似乎是在动态序列化和真正的单实例上实现的折衷方案,但您却失去了经典单例的更友好的OOP方法。枚举不能被继承,只能实现一