TypeScript枚举类型

it2024-07-07  39

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]);

这样就进行了反查。

最新回复(0)