如何在打字稿中为受保护构造函数的类声明`new()=> T`类型?

时间:2020-08-10 12:22:07

标签: typescript

我有以下代码。 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();

0 个答案:

没有答案