我认为我可以像这样在TypeScript中创建一个泛型的新实例:
class Tree<T extends SomeInterface> {
constructor(private elementType: {new(): T}) {
}
public Grow() {
var newElement: T = new this.elementType();
// ...
}
}
但是有没有办法让TypeScript知道泛型中有new()
?换句话说,有没有办法让以下代码正常工作?
class Tree<T extends SomeInterface> { // <-- Modify the constraint?
public Grow() {
var newElement: T = new T();
// ...
}
}
T
是指构造函数的类型还是new
一些值后的结果类型?在发布的示例中,你两种方式都在使用它。 - Ryan Cavanaughnew
是在构造函数上调用的,而不是在“类型”上调用的。所以我想要得到我想要的结果,我需要创建某种“可创建”的接口,并给它一个Create()
函数? - Eric