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
相关产品推荐
相关产品推荐

