我是打字稿的新手,我正在尝试使用依赖注入来创建扩展基本抽象UIObject类的UI对象,但是我遇到错误'无法创建抽象类的实例'
这是一个简化的例子:
abstract class UIObject {
// Some methods
}
class Cursor extends UIObject {
// Some other methods
}
function create (UIObjectClass: typeof UIObject){
return new UIObjectClass()
}
我想要的是create function能够将任何扩展UIObject的类作为参数,并创建该类的实例 . 但是因为UIObject是一个抽象类,所以这不起作用,因为你无法实例化一个抽象类 .
这样做的最佳方法是什么?
1 回答
首先,您需要确保
create
接受一个类,而不是实例 .这将使TypeScript只接受具体的类 .
我还没有找到确保参数的方法 -
UIObjectClass
- 继承自UIObject
.