Enum[Enum["B"] = 2] = "A"; })(Enum || (Enum = {})); 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 这时可以考虑使用const enum来优化编译结果,它不会编译未使用的枚举项,而且不会生成对象,在编译后只会保留枚举值 // 编译前 enum Enum { A = 1, B = 2, } const arr...
}enumBool { No=123, Yes=Math.random(), } 上面示例中,Enum 成员的值等于一个计算式,或者等于函数的返回值,都是正确的。 ❗️Enum 成员值都是只读的,不能重新赋值。 enumColor { Red, Green, Blue } Color.Red=4;//报错 上面示例中,重新为 Enum 成员赋值就会报错。 ❗️为了让这一点更醒目,...
Enum 成员可以是字符串和数值混合赋值。 enum Enum { One = 'One', Two = 'Two', Three = 3, Four = 4, } 除了数值和字符串,Enum 成员不允许使用其他值(比如 Symbol 值)。 变量类型如果是字符串 Enum,就不能再赋值为字符串,这跟数值 Enum 不一样。
空字面量类型(Empty Literal Types):用来表示一个空值的类型,被定义的类型只能被赋值为undefined或null typeVoid=void;constisNull:Void=nullconstisUndefined:Void=undefinedconstisVoid:Void=void0 枚举字面量 枚举字面量类型(Enum Literal Types):用来表示一个具体的枚举值的类型 enumColor{Red=1,Green,Blue}type...
Enum 是 TypeScript 新增的一种数据结构和类型,中文译为“枚举”。 目录[隐藏] 简介 Enum 成员的值 同名Enum 的合并 字符串 Enum keyof 运算符 反向映射 简介 实际开发中,经常需要定义一组相关的常量。 constRED=1;constGREEN=2;constBLUE=3;letcolor =userInput();if(color ===RED) {/* */}if(color...
4. 对 enum 使用typeof enum 是一种新的数据类型,但在具体运行的时候,它会被编译成对象 enum Direction { Up = 1, Down, Left, Right, } 编译成JS后代码: "use strict"; var Direction; (function (Direction) { Direction[(Direction["Up"] = 1)] = "Up"; Direction[(Direction["Down"] = 2)...
enum E { X } console.log(E.X); // 0 1. 2. 3. 5. 不能随意摆放不带初始化值的枚举 针对不带初始化器的枚举定义时,位置也是有要求的。根据 TypeScrtip Handbook,不带初始化器的枚举或者被放在第一的位置,或者被放在使用了数字常量或其它常量初始化了的枚举后面。意即下面这种情况是会出问题的: ...
枚举字面量类型(Enum Literal Types) 字符串字面量类型(String Literal Types) 实例声明 使用一个字符串字面量作为一个类型,例如 let foo: 'Hello' foo = 'Hello' // ok foo = 'Bar'; // Error: 'Bar' 不能赋值给类型 'Hello' 类型检测 可以使用typeof检验一下变量等类型 type CF = typeof foo...
const _type: FieldTypes = 'input' // ❎ error 解法二: 使用只读的object来替代enum的作用 const FieldTypesObj = { INPUT: 'input', SWITCH: 'switch' } as const // <-- 关键技巧 1: as const type Type = typeof FieldTypesObj // <-- 关键技巧 2: 用 typeof 关键字从 FieldTypesObj 反...
对enum 使用typeof 在TypeScript 中,enum是一种新的数据类型,但在具体运行的时候,它会被编译成对象。 enum UserResponse { No = 0, Yes = 1, } 对应编译的 JavaScript 代码为: var UserResponse; (function (UserResponse) { UserResponse[UserResponse["No"] = 0] = "No"; ...