TypeScript - 枚举 - 常量枚举

常量枚举的定义

使用 const enum 进行常量枚举的定义,
格式如下 :
const enum 枚举类型名称{
元素1,
元素2,
。。。。。。
}

常量枚举的特殊的地方

常量枚举 : 在编译后是不存在的。
在使用常量枚举的元素的时候,编译之后会直接用它的值。

体会一下区别

普通枚举

  • 编译前源代码
enum WEEK1 {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}
console.log(WEEK1)
console.log(WEEK1.MONDAY)
console.log(WEEK1[0],WEEK1['1'])
  • 编译后的js代码

打印的语句仍然是通过元素来获取对应的值

var WEEK1;
(function (WEEK1) {
    WEEK1[WEEK1["MONDAY"] = 0] = "MONDAY";
    WEEK1[WEEK1["TUESDAY"] = 1] = "TUESDAY";
    WEEK1[WEEK1["WEDNESDAY"] = 2] = "WEDNESDAY";
    WEEK1[WEEK1["THURSDAY"] = 3] = "THURSDAY";
    WEEK1[WEEK1["FRIDAY"] = 4] = "FRIDAY";
    WEEK1[WEEK1["SATURDAY"] = 5] = "SATURDAY";
    WEEK1[WEEK1["SUNDAY"] = 6] = "SUNDAY";
})(WEEK1 || (WEEK1 = {}));
console.log(WEEK1);
console.log(WEEK1.MONDAY);
console.log(WEEK1[0], WEEK1['1']);

常量枚举

  • 编译前源代码
const enum A {
    a,b,c
}
// console.log(A)// 错误,不可以使用,因为这个编译之后是不存在的
console.log(A.a)
  • 编译后的js代码

打印的直接是 对应的元素 的数值!!!

// console.log(A)// 错误,不可以使用,因为这个编译之后是不存在的
console.log(0 /* A.a */);

你可能感兴趣的:(TypeScript,typescript,javascript,前端,枚举类型,常量枚举)