infer条件类型语法

43 阅读1分钟

用法

T extends U ? X : Y

条件类型使用 infer

type F<T> = T extends Array<infer K> ? K : T;

// string 
type S = F<string[]>; 
// boolean
type B = F<boolean>;


type PromiseFun<T> = T extends (...args: infer P) => infer K
? 
(...args: P) => Promise<K>
:
T;