• 枚举在编译之后是一个真实存储的 对象, 所以可以在运行时使用
enum Gender {
    Male,
    Female
}

将如上代码用 tsc 进行编译得到编译之后的源代码:

TypeScript-运行时和常量枚举

tsc index.ts

编译之后的源代码内容如下,编译之后发现枚举代码雀实是存在的:

TypeScript-运行时和常量枚举

  • 而像接口这种只是用来做 约束静态检查 的代码, 编译之后是 不存在
interface TestInterface {
    name: string;
    age: number;
}

将如上代码用 tsc 进行编译得到编译之后的源代码:

TypeScript-运行时和常量枚举

tsc index.ts

编译之后的源代码内容如下,编译之后发现接口代码雀实是不存在了:

TypeScript-运行时和常量枚举

常量枚举

  • 普通枚举和常量枚举的区别
  • 普通枚举会生成真实存在的对象
  • 常量枚举不会生成真实存在的对象, 而是利用枚举成员的值直接 替换 使用到的地方
// 普通枚举
enum Gender1 {
    Male,
    Female
}

console.log(Gender1.Male === 0);

// 常量枚举
const enum Gender2 {
    Male,
    Female
}

console.log(Gender2.Male === 0);

将如上代码用 tsc 进行编译得到编译之后的源代码:

TypeScript-运行时和常量枚举

发现编译之后的内容,正是我如上所说的,即可验证我的说法是正确的????

相关文章:

  • 2021-06-16
  • 2022-12-23
  • 2022-12-23
  • 2021-10-10
  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-31
  • 2021-08-10
  • 2021-05-24
  • 2021-12-31
  • 2021-05-28
  • 2021-07-17
  • 2021-05-22
相关资源
相似解决方案