2016-04-04 169 views
2

不知含義類型如下注釋功能是什麼時候正式參數名稱不必匹配:功能類型標註打字稿

let foo: (x:number, y:number) => number = (a:number, b:number) => a+b  

我的意思是,什麼是(x:number, y:number) => number意思?我認爲如果在定義函數類型時能夠編寫(number, number) => number會更有意義,特別是如果「形式參數名稱」不必與任何匹配。

爲什麼我必須在函數類型中定義像xy這樣的名稱?不是打字稿能推斷出功能類型(a:number, b:number) => number? 而且我知道我可以省略顯式類型註釋,但在我的情況下,我總是需要顯式類型註釋。

回答

1

例如,考慮Array.prototype.map()聲明:

public map(mapper: (value?: T, index?: number, list?: T[]) => any): any[]; 

您需要變量名因爲他們有關於參數的方法需要的重要信息,只是類型是不夠的。正如你所說,你可以避免這些類型,但是這樣你可以使用你的代碼儘可能多的瞭解你的方法。

1

的響應是在Typescript FAQ

這不是說有,但它似乎是爲了使文件更具可讀性,因爲參數名稱可能暗示有關參數值作出的決定。