ts规范
使用 const enum替代enum
建议所有枚举使用const enum,为什么呢?
enum生成的结构,就是枚举都是一个函数得到的对象,浪费了很多操作空间, 为了解决这个问题,就出现了常量枚举
// 枚举值的计算
export enum EVar {
A = 'a',
B = A,
}
// 编译后
(function (EVar) {
EVar["A"] = "a";
EVar["B"] = "a";
})(EVar || (EVar = {}));
const enum编译阶段会删除这个枚举
const enum Directions {
Up,
Down,
Left,
Right
}
let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right]
var directions = [0 /* Up */, 1 /* Down */, 2 /* Left */, 3 /* Right */];