學(xué)習(xí)typescript - enum

數(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ù)字混合枚舉
  • 計算枚舉
  • 枚舉在運行時是一個對象
  • 反向映射
  • 常量枚舉
  • 外部枚舉
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容