簡體   English   中英

推斷打字稿中的參數類型

[英]Infer parameter type in typescript

我正在嘗試構造一個函數,該函數將一個類( Clazz )作為參數並返回相同類的實例,如下所示

function myFunction(Clazz) {
    ...
    return new Clazz();
}

有什么方法可以推斷Clazz的類型並將其設置為該函數的返回類型? 我知道我可以使用泛型實現以下目標:

function myFunction<T>(Clazz: new () => T): T {
    ...
    return new Clazz();
}

var instance = myFunction<myClass>(myClass)

但是我的意圖是擺脫myClass定義,如上面的用法所示

是的,只需刪除<myClass> ,您就可以開始了:

function myFunction<T>(Clazz: new () => T): T {
    return new Clazz();
}

class myClass {
    public m() { }
}
var instance = myFunction(myClass) // instance is typed as myClass, T is infered to myClass
instance.m() // ok 

Typescript將根據函數的參數推斷類型參數。 很少需要傳遞顯式類型參數(通常,這通常是對類型參數使用不當的一種征兆,並非總是如此,但通常如此)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM