在Typescript的泛型中遇到问题,其中类型在泛型函数或类的范围内未定义。我找不到任何关于此的文档,虽然我认为它是设计的。有没有办法实现我想要的,安全输入?
function test<T>() {
return new T();
}
class TestClass<T> {
public build(): T {
return new T();
}
}
播放链接:
答案 0 :(得分:2)
TypeScript泛型(与C#等其他语言不同)仅限编译时。因此,您不能在运行时位置中使用它们,例如new T
。
有没有办法实现我想要的,安全地输入
明确传递构造函数 。例如
class TestClass<T> {
public build(x:{new ():T}): T {
return new x();
}
}
此处x:{new ():T}
我说x
是new
调用T
的实例。{/ 1}}。