// 假设我一个枚举enumENUM_TYPE{ALL='all',SOME='some',LITTLE='little'}// 获取枚举的 valuetypeIValue=`${ENUM_TYPE}`// 'all' | 'some' | 'little'// 获取枚举的 keytypeIKey=keyoftypeofENUM_TYPE// 'ALL' | 'SOME' | 'LITTLE'
我们可以使用map来实现这个转换: constcolorOptions=colors.map(color=>{return{label:color,// 显示在选项中的文本value:color// 实际的值}});// colorOptions 现在是 [// { label: "RED", value: "RED" },// { label: "GREEN", value: "GREEN" },// { label: "BLUE", value: "BLUE" }// ...
在前面说过 Enum 很像 Object ,如果研究一下 Enum 被编译成 javascript 之后的代码,就会发现还真的是 Object。Enum 被编译后会变成 Key 和 Value 反向对应的对象,这样看起来非常简单,为了方便使用,下面把它的编译方式写成一个函数:const newEnum = (descriptions) => { const result = {}; Object.key...
但在调用这个函数的时候,传入的参数不能是enum的值,而应该是enum的引用 从这里就会发现 enum 的特性:可以当做对象使用 摘一段官方文档的描述:枚举类型在运行时会被编译为一个对象,包含正向映射(name -> value),如果是数值枚举,还会生成反向映射(value -> name) 其实不只是运行时,普通的枚举类型最终都会编译为对...
枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,颜色限定为红绿蓝等。 简单的例子§ 枚举使用enum关键字来定义: enumDays{Sun,Mon,Tue,Wed,Thu,Fri,Sat}; 枚举成员会被赋值为从0开始递增的数字,同时也会对枚举值到枚举名进行反向映射: ...
从这里就会发现 enum 的特性:可以当做对象使用 摘一段官方文档的描述:枚举类型在运行时会被编译为一个对象,包含正向映射(name -> value),如果是数值枚举,还会生成反向映射(value -> name) 其实不只是运行时,普通的枚举类型最终都会编译为对象 // 编译前 ...
如果你想让你的 TypeScript 代码更加有条理,枚举(enum)是一个非常强大的工具。它可以将相关的值组合在一起,使你的代码结构更加清晰,易于阅读。让我们深入了解一下如何使用它们吧! 一、简单的示例:方向操作 枚举的一个常见用例是:在有限的选项集合中进行选择,使代码更清晰明了。下面我们来看看一个简单的例子,通过...
由于TypeScript 的定位是 JavaScript 语言的类型增强,所以官方建议谨慎使用 Enum 结构,因为它不仅仅是类型,还会为编译后的代码加入一个对象。 Enum 结构比较适合的场景是,成员的值不重要,名字更重要,从而增加代码的可读性和可维护性。 enum Operator { ADD, DIV, MUL, SUB } function compute( op:Operator, a:...
Enum 是 TypeScript 新增的一种数据结构和类型,中文译为“枚举”。 目录[隐藏] 简介 Enum 成员的值 同名Enum 的合并 字符串 Enum keyof 运算符 反向映射 简介 实际开发中,经常需要定义一组相关的常量。 constRED=1;constGREEN=2;constBLUE=3;letcolor =userInput();if(color ===RED) {/* */}if(color...
enumDirection{Up,Down,Left,Right}letdirection:Direction;direction=Direction.Up// okdirection=Direction.Down// ok 把direction声明为Direction类型,可以看成声明了一个联合类型 Direction.Up|Direction.Down|Direction.Left|Direction.Right4.反向映射正向映射( name -> value) 反向映射( value -> name) 数字枚举...