數(shù)字枚舉 默認順序
enum Direction{
up, //0
down, //1
left, //2
right //3
}
數(shù)字枚舉 指定順序
enum Direction{
up = 1, //1
down, //2 后面會根據(jù)第一個指定的加1遞推
left, //3
right //4
}
數(shù)字枚舉 獲取對應(yīng)數(shù)字
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 第一個未初始化,第二個必須指定參數(shù)
}
字符串枚舉
enum Direction{
up = 'up', //得到的會是字符串
down = 'down'
}
字符串數(shù)字混合枚舉
enum Direction{
//技術(shù)上可以實現(xiàn),但是實際不推薦使用
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, //沒有初始化方法時被當做需要經(jīng)過計算的
right=3
}
自行回顧
- 數(shù)字枚舉 默認順序
- 數(shù)字枚舉 指定順序
- 數(shù)字枚舉 獲取對應(yīng)數(shù)字
- 枚舉 首個成員未初始化
- 字符串枚舉
- 字符串數(shù)字混合枚舉
- 計算枚舉
- 枚舉在運行時是一個對象
- 反向映射
- 常量枚舉
- 外部枚舉