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

如何在不指定全部前置模板参数的情况下传入第n个模板参数?

解决方案

在TypeScript 3.0及以上版本中,你可以使用命名泛型参数直接指定最后一个模板参数,无需重复写出前面的默认参数,写法更简洁。

示例代码如下:

// 原泛型定义保持不变
type T<A = DefaultA, B = DefaultB, C = DefaultC> = A & B & C;

// 简洁写法:仅指定C的类型,A和B自动使用默认值
const t: T<C = MyC> | undefined;

如果需要兼容更低版本的TypeScript,还可以通过封装新类型别名的方式实现类似效果:

// 封装一个仅需指定C的类型别名
type TWithC<C = DefaultC> = T<DefaultA, DefaultB, C>;

// 使用时直接传入C的类型即可
const t: TWithC<MyC> | undefined;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:24:51