18. TypeScript 中 Enum 枚举类型
目录
这节主要学一下 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]);
这样就进行了反查。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 18. TypeScript 中 Enum 枚举类型
码云笔记 » 18. TypeScript 中 Enum 枚举类型