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

如何从Set类型中提取其成员的联合类型?

提取Set类型的成员联合类型

在TypeScript中,可以借助条件类型和infer关键字实现这个需求,具体步骤如下:

  • 先定义一个通用工具类型,用于提取Set的泛型参数:
type ExtractSetMembers<S> = S extends Set<infer T> ? T : never;
  • 直接使用这个工具类型处理目标Set类型:
type MySet = Set<"foo" | "bar">;
type MySetMembers = ExtractSetMembers<MySet>; // 最终结果为 "foo" | "bar"

逻辑说明

工具类型ExtractSetMembers会判断传入的类型S是否继承自Set<infer T>:

  • 如果匹配成功,infer T会自动推断出Set内部的成员类型,也就是我们需要的联合类型;
  • 如果传入的不是Set类型,则返回never类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:22:37