以下为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类型。