Enum: 表示枚举类型,用于定义一组命名的常量。 //枚举类型enumRoles { SUPER_ADMIN, ADMIN, USER } Any: 表示任意类型,可以接受任何类型的值,相当于放弃了类型检查。 //any类型let value:any value=123value='abc'value=true Void: 表示没有类型,通常用于函数没有返回值时的标注。 //void类型constfn = (te...
由于Enum有key,value两套东西,这里分别做个介绍。 EnumKey组成Union 经常有需要获取enum的key的union的场景。enum由于是有值的,因此转Union的过程和将对象的key转成union的场景一致。 enum CardinalDirection { North = 'N', East = 'E', South = 'S', West = 'W', } const DirectionObj = { North: '...
const enum Size { Small, Medium, Large } function printSize(size: Size): void { console.log(size); } printSize(Size.Small); // 编译后会直接替换为具体的值 在这个例子中,我们使用const enum关键字定义了一个常数枚举Size,它包含三个成员。 printSize函数接受一个参数size,类型为Size枚举。在函数体内...
enum BooleanLikeHeterogeneousEnum { No = 0, Yes = "YES", } 1.3、const枚举: 大多数情况下,枚举是十分有效的方案。 然而在某些情况下需求很严格。 为了避免在额外生成的代码上的开销和额外的非直接的对枚举成员的访问,我们可以使用const枚举。 常量枚举通过在枚举上使用const修饰符来定义。 const enum Enum {...
enumNoYes{No='No',Yes='Yes',}assert.equal(NoYes.No,'No');assert.equal(NoYes.Yes,'Yes'); 对于纯字符串枚举,我们不能省略任何初始化程序。 1.5 异构枚举 最后一种枚举称为异构枚举。异构枚举的成员值是数字和字符串的混合: 代码语言:javascript ...
enumNoYes{No='No',Yes='Yes',}assert.equal(NoYes.No,'No');assert.equal(NoYes.Yes,'Yes'); 对于纯字符串枚举,我们不能省略任何初始化程序。 1.5 异构枚举 最后一种枚举称为异构枚举。异构枚举的成员值是数字和字符串的混合: 代码语言:javascript ...
TS中可以使用enum或者const enum声明枚举,应该都知道就不说了。这个写法有一个问题,就是必须导入才能使用。在类型本身其实并不需要导入的情况下,由于引用了枚举导致类型也需要导入,且由此派生的都需要导入,比如下面这样,作为强迫症就很难忍了。 /** xx.ts **/ ...
通过const进行枚举声明: const enum MYLIST { A = 1, B = 2 } 我们在上面的例子中会看到,枚举在编译后会生成对应的代码,而常量枚举在编译后不会产生多余的代码。而在代码操作上,普通枚举我们可以直接访问枚举本身,常量枚举则不行。 enum MYLIST { A, B, C } console.log(MYLIST) ...
enumEnum{ A } leta=Enum.A; console.log(a);//0 letnameOfA=Enum[a]; console.log(nameOfA);// "A" 1. 2. 3. 4. 5. 6. 7. 8. const枚举 常量枚举,不允许修改这个常量枚举数据,不能计算 constenumEnum{ A=1, B=A*2//不行
constenumColor{Red,Green,Blue="blue".length};// index.ts(1,38): error TS2474: In 'const' enum declarations member initializer must be constant expression. 外部枚举 外部枚举(Ambient Enums)是使用declare enum定义的枚举类型: declareenumDirections{Up,Down,Left,Right}letdirections=[Directions.Up,Dir...