- 枚举在编译之后是一个真实存储的
对象 , 所以可以在运行时使用
enum Gender {
Male,
Female
}
将如上代码用 tsc 进行编译得到编译之后的源代码:
tsc index.ts
编译之后的源代码内容如下,编译之后发现枚举代码雀实是存在的:
- 而像接口这种只是用来做
约束 做 静态检查 的代码, 编译之后是 不存在 的
interface TestInterface {
name: string;
age: number;
}
将如上代码用 tsc 进行编译得到编译之后的源代码:
tsc index.ts
编译之后的源代码内容如下,编译之后发现接口代码雀实是不存在了:
常量枚举
- 普通枚举和常量枚举的区别
- 普通枚举会生成真实存在的对象
- 常量枚举不会生成真实存在的对象, 而是利用枚举成员的值直接
替换 使用到的地方
// 普通枚举
enum Gender1 {
Male,
Female
}
console.log(Gender1.Male === 0);
// 常量枚举
const enum Gender2 {
Male,
Female
}
console.log(Gender2.Male === 0);
将如上代码用 tsc 进行编译得到编译之后的源代码:
发现编译之后的内容,正是我如上所说的,即可验证我的说法是正确的????
|
请发表评论