TypeScript中使用的类型信息在运行时之前被删除,因此T
在您进行调用时,有关的信息不可用new T()
.
这就是为什么所有替代解决方案都依赖于传递的构造函数,例如动态创建类的示例:
interface ParameterlessConstructor{ new (): T; } class ExampleOne { hi() { alert('Hi'); } } class Creator { constructor(private ctor: ParameterlessConstructor ) { } getNew() { return new this.ctor(); } } var creator = new Creator(ExampleOne); var example = creator.getNew(); example.hi();