Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Typescript中的泛型-未定义的T_Javascript_Generics_Typescript - Fatal编程技术网

Javascript Typescript中的泛型-未定义的T

Javascript Typescript中的泛型-未定义的T,javascript,generics,typescript,Javascript,Generics,Typescript,Typescript的泛型存在问题,其中类型在泛型函数或类的范围内未定义。我找不到关于这个的任何文档,尽管我认为它是设计的。有没有一种方法可以实现我想要的,安全地打字 function test<T>() { return new T(); } class TestClass<T> { public build(): T { return new T(); } } 功能测试(){ 返回新的T(); } 类TestClass{ 公

Typescript的泛型存在问题,其中类型在泛型函数或类的范围内未定义。我找不到关于这个的任何文档,尽管我认为它是设计的。有没有一种方法可以实现我想要的,安全地打字

function test<T>() {
    return new T();
}

class TestClass<T> {
    public build(): T {
        return new T();
    }
}
功能测试(){
返回新的T();
}
类TestClass{
公共构建():T{
返回新的T();
}
}
链接到播放:

类型脚本泛型(与C#等其他语言不同)仅在编译时使用。因此,您不能在运行时位置使用它们,例如
newt

有没有一种方法可以实现我想要的,安全地打字

显式地传递构造函数。e、 g

class测试类{
公共生成(x:{new():T}):T{
返回新的x();
}
}

在这里,
x:{new():T}
我是说,
x
是当用
new
调用时,给出了
T
的一个实例,有关非泛型版本的解释,请参见
class TestClass<T> {
    public build(x:{new ():T}): T {
        return new x();
    }
}