Enum枚举类型
TypeScript 中枚举(enum)类型的使用,你如果在程序中能灵活的使用枚举(enum),会让程序有更好的可读性。这里我拿每次去“大宝剑”点餐作个比喻。
比如我现在去"大宝剑"时,通过掷色子随机选择一项服务,进行程序化模拟。这里我先用 JavaScript 的写法来编写。
初级写法
function getServer(status:number){
if(status === 0){
return "massage";
}else if(status === 1){
return "SPA";
}else if(status === 2){
return "dabaojian";
}
}
const result = getServer(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。
这看起来很神奇,这是因为枚举类型是有对应的数字值的,默认是从 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]);
这样就进行了反查。