我正在使用TypeScript和React;我想扩展一个基本组件,然后有一个返回许多子类之一的函数 .
例如:
class SuperComponent extends React.Component { }
class SubComponent extends SuperComponent { }
function get(): SuperComponent {
return SubComponent;
}
但是,TypeScript会引发以下错误:
错误TS2322:类型'typeof SubComponent'不能分配给'SuperComponent'类型 . 'typeof SubComponent'类型中缺少属性'setState' .
看起来这不是特定于React的,因为我可以很容易地重现它:
class BaseClass {
myMethod() {}
}
class SuperClass extends BaseClass {}
class SubClass extends SuperClass {}
function get2(): SuperClass {
return SubClass;
}
错误TS2322:类型'typeof SubClass'不能分配给'SuperClass'类型 . 'typeof SubClass'类型中缺少属性'myMethod' .
这应该是可能的,对吗?我错过了什么?
1 回答
您需要实际创建组件的实例:
如果要返回组件的类型,则需要使用
typeof SuperComponent
作为返回类型: