繁体   English   中英

打字稿中的泛型-未定义T

[英]Generics in Typescript - Undefined T

Typescript的泛型有问题,其中泛型函数或类的范围中的类型未定义。 尽管我认为这是设计使然,但我找不到任何文档。 有没有一种方法可以安全地实现我要实现的目标?

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

class TestClass<T> {
    public build(): T {
        return new T();
    }
}

播放连结:

http://www.typescriptlang.org/Playground/#src=function%20test%3CT%3E()%20%7B%0A%09return%20new%20T()%3B%0A%7D%0A%0Aclass%20TestClass %3CT%3E%20%7B%0A%09public%20build()%3A%20T%20%7B%0A%09%09return%20new%20T()%3B%0A%09%7D%0A%7D%0A

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

有没有一种方法可以安全地实现我要实现的目标

显式传递构造函数 例如

class TestClass<T> {
    public build(x:{new ():T}): T {
        return new x();
    }
}

在这里x:{new ():T}我是说x是当用new调用时给出T的实例的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM