我们知道,TypeScript 支持 infer 来提取类型的一部分,通过模式匹配的方式。
比如元组类型提取最后一个元素的类型:
type Last<Arr extends unknown[]> =
Arr extends [...infer rest,infer Ele]
? Ele
: never;
复制代码
比如函数提取返回值类型:
type GetReturnType<Func extends Function> =
Func extends (...args: any[]) => infer ReturnType