Print

18. TypeScript 中 Enum 枚举类型


作者: 文章来源:

本文原地址:https://www.mimiwuqi.com/webqianduan/196742.html

目录文章目录
  1. 大宝剑引出的思考
  2. 枚举类型的对应值
  3. 枚举通过下标反查

这节主要学一下 TypeScript 中枚举(enum)类型的使用,你如果在程序中能灵活的使用枚举(enum),会让程序有更好的可读性。

大宝剑引出的思考

比如我现在去”大宝剑”时,通过掷色子随机选择一项服务,进行程序化模拟。这里我先用 JavaScript 的写法来编写。

初级程序员写法:

function getServe(status: number) {
  if (status === 0) {
    return "massage";
  } else if (status === 1) {
    return "SPA";
  } else if (status === 2) {
    return "dabaojian";
  }
}
const result = getServe(0);
console.log(`我要去${result}`);

中级程序员写法:

const Status = {
  MASSAGE: 0,
  SPA: 1,
  DABAOJIAN: 2,
};

function getServe(status: any) {
  if (status === Status.MASSAGE) {
    return "massage";
  } else if (status === Status.SPA) {
    return "spa";
  } else if (status === Status.DABAOJIAN) {
    return "dabaojian";
  }
}

const result = getServe(Status.SPA);

console.log(`我要去${result}`);

高级程序员写法:

enum Status {
  MASSAGE,
  SPA,
  DABAOJIAN,
}

function getServe(status: any) {
  if (status === Status.MASSAGE) {
    return "massage";
  } else if (status === Status.SPA) {
    return "spa";
  } else if (status === Status.DABAOJIAN) {
    return "dabaojian";
  }
}

const result = getServe(Status.SPA);

console.log(`我要去${result}`);

这时候我们就引出了今天的主角枚举 Enum。

枚举类型的对应值

你调用时传一个1,也会输出我要去 spa。

const result = getServe(1);

这看起来很神奇,这是因为枚举类型是有对应的数字值的,默认是从 0 开始的。我们直接用console.log()就可以看出来了。

console.log(Status.MASSAGE);
console.log(Status.SPA);
console.log(Status.DABAOJIAN);

可以看出结果就是0,1,2。那这时候不想默认从 0 开始,而是想从 1 开始,可以这样写。

enum Status {
  MASSAGE = 1,
  SPA,
  DABAOJIAN,
}

枚举通过下标反查

我们这里能打印出枚举的值(也有叫下标的),那如果我们知道下标后,也可以通过反查的方法,得到枚举的值。

console.log(Status.MASSAGE, Status[1]);

这样就进行了反查。

更多 建站教程 请访问 https://www.mimiwuqi.com/webqianduan/