Yuzhe's Blog

yuzhes

获取函数返回类型

获取函数返回类型

题目链接

题目

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

例如:

  const 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