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

如何将TypeScript联合类型映射为带参数的泛型联合类型?

TypeScript联合类型自动映射方案

可以通过TypeScript的分布式条件类型实现这种自动映射,无需手动逐个枚举联合类型成员,完美解决可扩展性问题。

具体实现步骤:

  • 保留原联合类型定义
type Union = "a"|"b"|"c";
  • 定义一个通用映射工具类型
type MapUnionToSpecial<T> = T extends unknown ? MySpecialType<T> : never;

这里用unknown替代any更符合类型安全原则,本质是利用TypeScript对联合类型的自动分发特性:当泛型参数T是联合类型时,条件类型会自动将联合类型拆分为单个成员,分别代入逻辑处理后再合并为新的联合类型。

  • 生成目标类型
type NewType = MapUnionToSpecial<Union>;

此时NewType会自动等价于MySpecialType<"a">|MySpecialType<"b">|MySpecialType<"c">,后续只要扩展Union的成员,NewType会自动同步更新,完全不需要手动修改映射逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:02:01