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 = {}));
枚举包含七个成员,表示从星期日到星期六,每个都有对应的数字,例如 Sun 的值是 0,Mon 的值是 1
使用:
const today: Days = Days.Wed; // 将今天设定为星期三if (today === Days.Wed) { console.log("今天是星期三!");} else { console.log("今天不是星期三。");}
枚举编译后就是一个普通对象,只是这些键值有一个反向映射。
const Days = {}Days[0] = 'Sun'Days.Sun = 0
就是KV双向映射,Days
既可以Days.Sun
获取到枚举值0
,也可以反向Days[Days.Sun]
获取到"Sun"
这个枚举值0
对应的key
,就是方便你获取key
和value
;具体到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方法。枚举不能被继承,只能实现一