TypeScript 枚举类型

function getResult(status) {
  if (status === 0) {
    return 'offline'
  } else if (status === 1) {
    return 'online';
  } else if (status === 2) {
    return 'deleted'
  }
  return 'error'
}

这种代码很常见,但是这种并不是很直观,比如 status === 0 到底是什么意思。status === 1 到底是什么意思,其实是看不懂的。为了增加代码的可读性,可以这样写

const Status = {
  offline: 0,
  online: 1,
  deleted: 2
}

function getResult(status) {
  if (status === Status.offline) {
    return 'offline'
  } else if (status === Status.online) {
    return 'online';
  } else if (status === Status.deleted) {
    return 'deleted'
  }
  return 'error'
}

const result = getResult(Status.offline);
console.log(result);

这样写更容易懂,也可以是用枚举类型

/**
* 枚举类型
* 但是之前知道 OFFLINE 是 0,ONLINE 是 1
* 直接这么写,他们是 0 ,1, 2 排列的
* 如果给 OFFLINE 设置了值 OFFLINE = 1 ,对应的值是 1,2,3
* 如果给 ONLINE 设置了值 ONLINE = 4 ,对应的值是 0, 4, 5
*/
enum Status {
  OFFLINE,
  ONLINE,
  DELETED
}

function getResult(status) {
  if (status === Status.OFFLINE) {
    return 'offline'
  } else if (status === Status.ONLINE) {
    return 'online';
  } else if (status === Status.DELETED) {
    return 'deleted'
  }
  return 'error'
}

const result = getResult(Status.OFFLINE);
console.log(result);

枚举类型就解决这种场景,这种固定 0,1,2 什么的

原文地址:https://www.cnblogs.com/wzndkj/p/13155603.html