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

TypeScript中枚举(Enum)转换为Set的最优方法

TypeScript字符串枚举转Set的最优方法

对于你定义的字符串枚举:

enum Animes {
    OnePiece = 'One Piece',
    Naruto = 'Naruto',
    Bleach = 'Bleach'
}

最优转换方法是直接利用Object.values()获取枚举值数组,再传入Set构造函数:

const animeSet = new Set(Object.values(Animes));

为什么这是最优解?

  • 适配字符串枚举特性:TypeScript字符串枚举编译后仅生成正向映射对象(键为枚举成员名,值为对应字符串),不会像数字枚举那样产生反向映射,Object.values()能直接精准获取所有枚举值。
  • 性能最优:操作时间复杂度为O(n)(n为枚举成员数量),这是构建Set的最低时间复杂度,因为必须遍历所有成员完成集合初始化。
  • 代码简洁易维护:一行代码完成转换,可读性极强。

注:如果是数字枚举,需要额外过滤反向映射的数字键,但你的场景为字符串枚举,无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:32:35