如何使用class作为变量创建类实例?

时间:2017-07-24 08:31:28

标签: angular typescript

typescript中,我将整个类作为参考MyClass传递给函数。 如何在该函数中创建该类的新实例?

export class MyClass {
}

createClass(MyClass);

function createClass(classReference) {
   const classInstance = new classReference();//not working
}

我需要它,因为在角色ModuleWithProviders我无法呼叫new MyClass()

2 个答案:

答案 0 :(得分:2)

它应该是这样的:

function createClass<T>(classReference: { new (): T }): T {
   return new classReference();
}

let a = createClass(MyClass); // type of a is MyClass

code in playground

答案 1 :(得分:0)

在ModuleWithProviders中,您可以使用:

{ provide: ProviderToReplace, useClass: MyClass }

See more here