Typescript學習筆記(14) ----- Enum 枚舉類型

  • 解決的開發(fā)問題:
    在實際的開發(fā)過程中,可能會遇到以下的場景
function getResult(status){
  if(status === 0){
    return 'OFFLINE'
  }else if(status === 1){
    return 'ONLINE'
  }else if(status === 2){
    return 'NORMAL'
  }
  return 'ERROR'
}

但這樣的代碼可讀性并不是很好,使用對象的形式增加一下代碼的可讀性

const STATUS = {
  OFFLINE:0,
  ONLINE:1,
  NORMAL:2
}

function getResult(status){
  if(status === STATUS.OFFLINE){
    return 'OFFLINE'
  }else if(status === STATUS.ONLINE){
    return 'ONLINE'
  }else if(status === STATUS.NORMAL){
    return 'NORMAL'
  }
  return 'ERROR'
}

在typescript中,專門有一個枚舉類型Enum可以解決這樣的場景:

// 定義一個枚舉類型
enum STATUS{
  OFFLINE,
  ONLINE,
  NORMAL
}

function getResult(status){
  if(status === STATUS.OFFLINE){
    return 'OFFLINE'
  }else if(status === STATUS.ONLINE){
    return 'ONLINE'
  }else if(status === STATUS.NORMAL){
    return 'NORMAL'
  }
  return 'ERROR'
}

const result = getResult(0)
console.log('result',result)
// result OFFLINE
  • 枚舉類型的默認值是從0開始,后面每一屬性的值前一個值+1
enum STATUS{
  OFFLINE, //0
  ONLINE, //1
  NORMAL //2
}
  • 可以設置屬性的默認值
enum STATUS{
  OFFLINE = 1, //1
  ONLINE = 999, //999
  NORMAL //1000
}
  • 枚舉類型也可以反向映射
enum STATUS{
    OFFLINE = 1, //1
    ONLINE = 999, //999
    NORMAL //1000
}
console.log(STATUS[1])
// OFFLINE
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容