❗️很大程度上,Enum 结构可以被对象的as const断言替代。 enumFoo { A, B, C, }constBar ={ A:0, B:1, C:2, }asconst;if(x ===Foo.A) { }//等同于if(x === Bar.A) { } 上面示例中,对象Bar使用了as const断言,作用就是使得它的属性无法修改。这样的话,Foo和Bar的行为
X as const; // Foo.X 变量e1的类型被推断为整个 Enum 类型;使用了as const断言以后,变量e2的类型被推断为 Enum 的某个成员,这意味着它不能变更为其他成员。 非空断言 对于那些可能为空的变量(即可能等于undefined或null),TypeScript 提供了非空断言,保证这些变量不会为空,写法是在变量名后面加上感叹号!。
label:'左'},{key:'Right',value:DirectionNumber.Right,label:'右'},]asconst;//[// { key: 'UP', value: 1, label: '上' },// { key: 'Down', value: 2, label: '下' },// { key: 'Left',
(function (Enum) {//因为是数值枚举,所以还生成了反向映射Enum[Enum["A"] =1] ="A"; Enum[Enum["B"] =2] ="A"; })(Enum|| (Enum = {})); 这时可以考虑使用const enum来优化编译结果,它不会编译未使用的枚举项,而且不会生成对象,在编译后只会保留枚举值 //编译前enumEnum { A=1, B=2,...
Enum 虽好,但我选择Const Assertions:constSampleConstant={A:0,B:1,C:2,}asconst;// available ...
Enum[Enum["B"] = 2] = "A"; })(Enum || (Enum = {})); 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 这时可以考虑使用const enum来优化编译结果,它不会编译未使用的枚举项,而且不会生成对象,在编译后只会保留枚举值
如果你想让你的 TypeScript 代码更加有条理,枚举(enum)是一个非常强大的工具。它可以将相关的值组合在一起,使你的代码结构更加清晰,易于阅读。让我们深入了解一下如何使用它们吧! 一、简单的示例:方向操作 枚举的一个常见用例是:在有限的选项集合中进行选择,使代码更清晰明了。下面我们来看看一个简单的例子,通过...
enum Gender{ Male = 0, Female = 1 } let i: { name: string, gender: Gender } i = { name: 'yang', gender:Gender.Female } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 类型中的连接符 |或 let c: string | number c = 'yang' ...
Typically, we would declare an Enum as follows: enum Sizes { Small, Medium, Large, } The Enum could then be accessed like so: const coffee = { name: 'Espresso', size: Sizes.Small, // 0 }; Looks harmless, right? But what about when our TypeScript code is compiled? Here’s the...
不能使用enum,因为transpiler会将值转换为数字,这会引发问题。除了使用“enumlike”来进行类型检查和值...