Typescript学习笔记(14) ----- Enum 枚举类型

  • 解决的开发问题:
    在实际的开发过程中,可能会遇到以下的场景
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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。