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

如何正确访问TypeScript枚举值?是否仅可作为类型使用?

TypeScript字符串枚举访问问题解决方法

你遇到的报错是TypeScript类型检查导致的,枚举不仅是类型,也是运行时存在的对象,完全可以直接访问其值,以下是几种正确的访问方式:

1. 直接通过枚举成员访问(推荐)

这是最直接且类型安全的方式,不需要字符串索引:

enum Days{
  monday= "monday",
  sunday= "sunday",
}

console.log(Days.monday); // 输出 "monday"

2. 字符串索引时指定类型断言

如果必须使用字符串动态访问(比如从外部获取字符串值的场景),可以将字符串断言为枚举的键类型:

console.log(Days["monday" as keyof typeof Days]);

3. 提前定义键类型变量

先声明一个符合枚举键类型的变量,再用它来索引:

type DayKey = keyof typeof Days;
const targetDay: DayKey = "monday";
console.log(Days[targetDay]);

报错原因说明

TypeScript默认把"monday"识别为通用的string类型,而枚举Days的键是特定的字面量类型("monday"或"sunday"),通用字符串无法直接索引枚举类型,所以需要通过类型断言或明确变量类型来告诉TS这个字符串是枚举的有效键。

内容的提问来源于stack exchange,提问作者vuvu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:45:36