如何在不指定全部前置模板参数的情况下传入第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
相关产品推荐
相关产品推荐

