我有以下代码。 createInstance
将创建TestOne
的实例。这是通过其参数new () => T
完成的。它指示类型T
具有公共构造函数。但是,如果我将TestOne
构造函数更改为protected
,则无法使用。我有办法使受保护的构造函数起作用吗?
class TestOne {
protected constructor(){}
hi() {
alert('Hi');
}
}
function createInstance<T>(type: new () => T){
return new type();
}
var test = createInstance<TestOne>(TestOne);
var example = test.hi();