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

如何在TypeScript中将变量定义为枚举值类型?

在TypeScript中将变量类型指定为枚举值类型

你可以通过两种方式实现这个需求:

方式一:直接使用枚举类型

直接把变量的类型声明为枚举本身Alpha,TypeScript会自动校验变量值是否属于该枚举的有效成员:

enum Alpha {
  A = 1,
  B = 2
}

const c: Alpha = 1; // 合法,1是Alpha的枚举值
// const d: Alpha = 3; // 报错,3不是Alpha的有效枚举值

方式二:提取枚举值的联合类型

如果你需要明确获取枚举值的类型集合(比如这里的1 | 2),可以通过typeof Alpha[keyof typeof Alpha]来提取:

enum Alpha {
  A = 1,
  B = 2
}

// 提取枚举值的联合类型:1 | 2
type AlphaValue = typeof Alpha[keyof typeof Alpha];

const c: AlphaValue = 1; // 合法
// const d: AlphaValue = 3; // 报错

两种方式的区别在于:第一种用枚举类型Alpha,变量既可以用枚举成员(比如Alpha.A)也可以用对应的数值;第二种提取的是枚举值的具体联合类型,更精准地限定为枚举的实际值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:10:20