如何在TypeScript中实现安全的类Enum类型?
安全替代TypeScript原生enum的方案评估
TypeScript原生enum存在安全风险,作为TypeScript新手,我想要实现一个没有这类问题的类enum类型。之前我了解过几种JavaScript中创建enum的方案,ChatGPT给出了下面的实现方式,但我没法判断这个方案是不是最优的,也不确定有没有潜在问题:
实现代码
const MyEnum = { MyValue1: 'value1' as const, MyValue2: 'value2' as const, MyValue3: 'value3' as const, }; type MyEnum = typeof MyEnum[keyof typeof MyEnum];
使用示例
function printMyEnum(value: MyEnum): void { switch (value) { case MyEnum.MyValue1: console.log('>> MyValue1') break; case MyEnum.MyValue2: console.log('>> MyValue2') break; case MyEnum.MyValue3: console.log('>> MyValue3') break; default: throw new Error(`Invalid value: ${value}`); } } printMyEnum(MyEnum.MyValue1) // >> MyValue1
注:此问题并非相关重复问题,因为后者仅介绍了TypeScript标准enum的内容。
内容的提问来源于stack exchange,提问作者Caliuf
相关产品推荐
相关产品推荐

