- 枚举默认是从 0 开始递增
// 枚举默认是从 0 开始递增
enum Direction {
Up,
Down,
Left,
Right,
}
console.log(Direction.Up); // 0
- 如果有赋值数字,后面的直会自动递增
enum Direction {
Up = 10,
Down,
Left,
Right,
}
console.log(Direction.Down); // 11
- 常量枚举,在枚举前面加上 const,就是常量枚举
常量枚举可以大大提升性能,减少大部分的判断和编译后的代码量,但是,只有常量值,才可以用常量枚举,如果是计算值,就不能够用常量枚举。
// 常量枚举
const enum Direction {
Up = 'UP',
Down = 'DOWN',
Left = 'LEFT',
Right = 'RIGHT',
}
const value = 'UP'
if (value === Direction.Up) {
console.log('go up!')
}
一般的使用示例:
enum Status {
ERROR,
SUCCESS,
WARN,
}
console.log(Status.ERROR, Status[0]); // 0 ERROR
function handleStuts(params: Status) {
if (params === Status.ERROR) {
console.log('error');
} else if (params === Status.SUCCESS) {
console.log('success');
} else if (params === Status.WARN) {
console.log('warn');
} else {
console.log('参数不对');
}
}
handleStuts(Status.ERROR); // error
handleStuts(1); // success