infer 条件类型中的类型推断
infer
关键字在条件类型中使用,用于从依赖于泛型参数的类型中推断(提取)泛型参数的类型。这允许您编写更灵活且可重用的类型定义。
例子一:
1 | type ElementType<T> = T extends (infer U)[] ? U : never; |
例子二:获取函数的返回类型
1 | type returntpye<T> = T extends (...args: any) => infer R ? R : any; |
例子三:获取函数的第一个参数类型
1 | type firstArgType<T> = T extends (first: infer R, ...args: any[]) => any |