You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 21:10:24