跳到主要内容

ts规范

使用 const enum替代enum​

建议所有枚举使用const enum,为什么呢?

  • enum 生成的结构,就是枚举都是一个函数得到的对象,浪费了很多操作空间, 为了解决这个问题,就出现了常量枚举
js
// 枚举值的计算
export enum EVar {
A = 'a',
B = A,
}

// 编译后
(function (EVar) {
EVar["A"] = "a";
EVar["B"] = "a";
})(EVar || (EVar = {}));
  • const enum 编译阶段会删除这个枚举
js
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 */];