数字枚举 默认顺序
enum Direction{
up, //0
down, //1
left, //2
right //3
}
数字枚举 指定顺序
enum Direction{
up = 1, //1
down, //2 后面会根据第一个指定的加1递推
left, //3
right //4
}
数字枚举 获取对应数字
enum Direction{
up , //0
down, //1
left, //2
right //3
}
console.log(Direction.down); //1
枚举 首个成员未初始化
function getUp(){
return 0
}
enum Direction{
up=getUp(),
down //error 第一个未初始化,第二个必须指定参数
}
字符串枚举
enum Direction{
up = 'up', //得到的会是字符串
down = 'down'
}
字符串数字混合枚举
enum Direction{
//技术上可以实现,但是实际不推荐使用
up = 0,
down = "down"
}
计算枚举
function getLeft(){
return 2
}
enum Direction{
//可以通过计算获得
up = 0,
down = up +1,
left = getLeft()
}
枚举在运行时是一个对象
enum Direction{
up,
down,
left,
right
}
//枚举在运行的时候是实实在在的一个对象
console.log(Direction); //{0: "up", 1: "down", 2: "left", 3: "right", up: 0, down: 1, left: 2, right: 3}
反向映射
enum Direction{
up,
down,
left,
right
}
console.log(Direction.up);//0
console.log(Direction[0]);//up
常量枚举
const enum Direction{
up,
down,
left,
right
}
console.log(Direction.up); //0
console.log(Direction); //Direction is not defined
//编译后销毁,和普通枚举会实际存在的变量不一样
外部枚举
declare enum Direction{
up=0,
down=1,
left, //没有初始化方法时被当做需要经过计算的
right=3
}
自行回顾
- 数字枚举 默认顺序
- 数字枚举 指定顺序
- 数字枚举 获取对应数字
- 枚举 首个成员未初始化
- 字符串枚举
- 字符串数字混合枚举
- 计算枚举
- 枚举在运行时是一个对象
- 反向映射
- 常量枚举
- 外部枚举