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

如何使用TypeScript提取枚举值类型得到目标联合类型?

从TypeScript枚举中提取值的联合类型解决方案

直接使用code[keyof typeof code]即可获取你需要的联合类型,具体实现如下:

首先是你的原枚举代码:

enum code {
    a = 10,
    b = 20,
    c = "abc"
}

定义目标类型:

type IWantGet = code[keyof typeof code];

此时IWantGet的类型会被TypeScript推断为10 | 20 | "abc",完全符合你的需求。

原理说明

  • typeof code会获取枚举对应的对象类型,包含所有枚举键值对的结构信息;
  • keyof typeof code得到枚举所有键名组成的联合类型(即"a" | "b" | "c");
  • 通过索引访问code[keyof typeof code],会遍历所有键对应的枚举值,最终组合成这些值的联合类型。

这种方法对异构枚举(同时包含数字、字符串值)、纯数字枚举、纯字符串枚举都通用,是提取枚举值类型的标准方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:45:32