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

如何从TypeScript联合类型X中排除所有函数类型,使Y为string?

如何实现过滤联合类型中函数类型的TypeScript工具类型

可以通过条件类型实现该需求,利用TypeScript对联合类型的自动分发特性,逐个判断并排除函数类型成员:

type Something<T> = T extends Function ? never : T;

// 验证示例
type X = (() => void) | (() => number) | string;
type Y = Something<X>; // 最终类型为string

原理说明

  • TypeScript的条件类型会自动遍历联合类型的每一个成员,逐一进行判断
  • 当成员属于Function子类型(各类函数类型)时,返回never——never在联合类型中会被自动忽略
  • 非函数类型的成员会被保留,最终得到过滤后的目标类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:03:06