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

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

type MyInstanceType<T extends new (...args: any[]) => any> = T extends new (...args: any[]) => infer R ? R : never;

解释:

  • T extends new (...args: any[]) => any 约束 T 必须是构造函数类型。
  • T extends new (...args: any[]) => infer R 表示如果 T 能够赋值给构造函数类型 (new (...args: any[]) => infer R),则将 R 推断出来。
  • R ? R : never 表示如果 R 推断不出来,则返回 never。具体见“条件类型”。