总结 枚举(Enums)在编译时会生成一个独立的对象,可以通过枚举的名称来访问其对应的值,但会增加额外的代码量和内存占用。 常量枚举(Const Enums)在编译时会被完全内联到使用它们的地方,有助于减少生成的 JavaScript 代码的大小并提高性能,但在运行时无法通过枚举的名称来访问其对应的值。
constcoffee={name:'Espresso',size:Sizes[Sizes.Small],// 'Small'}; 很酷吧?但是,大多数时候您可能不需要这种反向映射功能,如果是这种情况,那么您当然可以从 const 立即引入您的代码库中受益。 以下是我们可以更改 Enum 的内容,在声明 const 之...
❗️很大程度上,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的行为就很类似了,...
var Enum;(function (Enum) { Enum[Enum["A"] = 1] = "A"; Enum[Enum["B"] = 2] = "B";})(Enum || (Enum = {}));因此会产生多余的代码,因此可以采用 const 枚举,即常量枚举,常量枚举通过 const 修饰符来定义。常量枚举不同于常规的枚举,常量枚举的代码会在编译阶段被删除。
常量枚举的语法如下:const enum Color { Red = 0, Green = 1, Blue = 2 } 在上面的例子中,我们定义了一个名为Color的常量枚举类型,它有三个常量:Red、Green和Blue,分别对应整数值0、1和2。由于这是一个常量枚举,我们不能重新分配这些常量值。二、枚举和常量枚举的区别 1. 可变性:枚举的值是可变的,...
enum Person { name = "前端娱乐圈", age = 3 * 6 } 上面这种是会报错的,“含字符串值成员的枚举中不允许使用计算值”,枚举对象成员有字符串的则不能再设置其它枚举对象成员为计算的值(3 * 6)。但是可以直接写字面量的。下面我们会讲到计算
Enum Enum 是在 TypeScript 中新增的语法,也叫做枚举,一般用它来管理多个相同系列的常量(即不能被修改的变量),用于状态的判断。在 Web 中比较常见的状态判断,是在处理请求时,要针对不同的响应状态码做对应的处理:const handleResponseStatus = (status: number): void => { switch (status) { case...
Enum 是 TypeScript 新增的一种数据结构和类型,中文译为“枚举”。 目录[隐藏] 简介 Enum 成员的值 同名Enum 的合并 字符串 Enum keyof 运算符 反向映射 简介 实际开发中,经常需要定义一组相关的常量。 constRED=1;constGREEN=2;constBLUE=3;letcolor =userInput();if(color ===RED) {/* */}if(color...
常数枚举是使用const enum定义的枚举类型: constenumDirections{Up,Down,Left,Right}letdirections=[Directions.Up,Directions.Down,Directions.Left,Directions.Right]; 常数枚举与普通枚举的区别是,它会在编译阶段被删除,并且不能包含计算成员。 上例的编译结果是: ...
const getSomeValue = () => 0; enum E { A = getSomeValue(), // Enum member must have initializer.ts(1061) B, } 1. 2. 3. 4. 5. 6. 7. 6. 枚举成员的值除了是常量,还可以是计算出来的结果 每个枚举成员都带有一个值,上面说过的都是常量,但是这个值也可以是计算出来的,即 computed val...