背景
在JS中并没有原生枚举的实现,可以通过下面几种方法来模拟类似的操作。...使用变量储存枚举值
这次进阶了一下,虽然代码啰嗦了,但是犯错概率会大大降低:
const Days = Object.freeze({
Mon: 'Mon',
Tue: 'Tue',...使用数字
这也是老生常谈的内容了,好多语言在没有枚举类型的时候都喜欢这么干:
const Days = Object.freeze({
Mon: 0,
Tue: 1,
Wed:...Symbol类型
虽然说用变量把枚举值储存起来了,不过只要别人愿意,他完全可以这样做:
// 使用字符串时
isWeekend('Sun')
// 使用数字时
isWeekend(0)
那我们属于是白封装了...'Wed', 'Thur', 'Fri', 'Sat'].reduce((pre, cur) => {
return { ...pre, [cur]: cur }
}, {})
换汤不换药,和上面的数字类型定义时类似