以下为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。具体见“条件类型”。