Yuzhe's Blog

yuzhes

获取函数返回类型

获取函数返回类型

题目链接

题目

不使用 ReturnType 实现 TypeScript 的 ReturnType<T> 泛型。

例如:

function fn(v: boolean) {
  if (v)
    return 1
  else
    return 2
}

type a = MyReturnType<typeof fn> // 应推导出 "1 | 2"

解答

type MyReturnType<T> = T extends (...args: any[]) => infer R ? R : void

简单的使用infer来推断函数的返回类型即可。

对于不熟悉infer的同学,可以参考 infer