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

如何在TypeScript中从数字枚举取值创建对应联合类型

实现方案

你可以直接通过索引访问枚举类型的方式得到枚举值的联合类型,代码如下:

enum Weekdays {
  Monday = 1,
  Tuesday = 2
}

type WeekdaysType = typeof Weekdays[keyof typeof Weekdays]
// 此时 WeekdaysType 的类型等价于 1 | 2

原理解释

  • typeof Weekdays 会获取枚举本身的类型,内部包含了所有枚举键到枚举值的映射关系
  • keyof typeof Weekdays 会得到所有枚举键名组成的字符串联合类型,这里就是 "Monday" | "Tuesday"
  • 最后通过索引访问的形式 typeof Weekdays[键联合类型],就会把所有键对应的枚举值提取出来组成联合类型,正好符合需求

这个方案对数值枚举、字符串枚举都通用,哪怕是没有手动赋值的默认自增数值枚举也可以正常使用。

内容的提问来源于stack exchange,提问作者Žilvinas Rudžionis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:39:01