簡體   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