Javascript 通过 Proxy 设置枚举
具体代码
export function Enum(baseEnum) {
return new Proxy(baseEnum, {
get(target, name) {
if (!baseEnum.hasOwnProperty(name)) {
throw new Error(`"${name}" value does not exist in the enum`)
}
return baseEnum[name]
},
set(target, name, value) {
throw new Error('Cannot add a new value to the enum')
}
})
}
使用方法
const MyEnum = Enum({
Option1: 'option1',
Option2: 'option2',
Option3: 'option3'
})
优点: 枚举值不会被更改
const options1 = MyEnum.Option1 = "option4"
//caught Error: Cannot add a new value to the enum

浙公网安备 33010602011771号