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

TypeScript如何将枚举的键转换为类型?

获取枚举键作为TypeScript类型的正确方式

要提取枚举的键作为类型,你需要结合typeof和keyof操作符,这是TypeScript中处理枚举类型的标准做法:

enum Layers {
    Front = 1,
    Middle = 2,
    Back = 3,
}

// 正确获取枚举键的联合类型
type LayerKeys = keyof typeof Layers; // 类型为 "Front" | "Middle" | "Back"

type LayerConfig = Map<LayerKeys, {}>;

原理说明

TypeScript的数字枚举会编译成包含正向(键→值)和反向(值→键)映射的对象,typeof Layers用于获取这个枚举对象的类型,keyof操作符则提取该类型的所有键名,最终得到你需要的字符串联合类型。

可选:过滤反向映射的数值键

如果想严格排除自动生成的数值反向键(比如Layers[1]对应的"1"键),可以用Exclude类型工具过滤掉数值类型的键:

type LayerKeys = Exclude<keyof typeof Layers, number>;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:15:55