[英]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.