以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - TypeScript 类型谜题
12. 实现 ReturnType<T>

可以通过infer关键字来获取function type T的返回值类型,并将其赋值给别名ReturnType。

实现代码如下:

type MyReturnType<T> = T extends (...args: any[]) => infer ReturnType ? ReturnType : never;

解析:

  • T extends (...args: any[]) => infer ReturnType 首先判断T是否是一个函数类型,如果是则返回ReturnType类型。
  • infer ReturnType 使用infer关键字来获取函数类型的返回值类型。
  • ? ReturnType : never 如果T不是函数类型,则返回never类型。