泛型与接口结合使用是否不当?TypeScript代码报错求助
TypeScript代码报错原因与修复
你的代码报错是因为在使用泛型类型Test时,错误地将类型约束语法当作类型参数传入了。
错误点解析
Test<T extends U>是泛型类型的声明,其中T extends U是对类型参数T的约束。但在Test<Props extends U>这里,你把约束语法Props extends U直接放在了泛型调用的参数位置,这不符合TypeScript的语法规则——泛型调用时需要传入的是符合约束的类型/类型变量,而不是约束条件本身。
另外,Props已经在TestAgain的泛型声明中被约束为extends U,完全满足Test的类型参数要求,不需要重复声明约束。
修复后的代码
interface U {}; type Test<T extends U> = {}; interface TestAgain<Props extends U> { Component: Test<Props>; // 直接传入类型变量Props即可 }
内容的提问来源于stack exchange,提问作者user1849962
相关产品推荐
相关产品推荐

