是否存在TypeScript等效的C#的Func關鍵字?命名函數類型
在今天轉換一些現有代碼的TypeScript的初步探索,我使用類/對象的接口,但發現我自己複製函數類型不必要的。我錯過了什麼嗎?
在下文中,我定義爲一個對象類型(數據),並將受益的接口從命名(數據:數據)=>空隙過於
interface Funcs {
box: (data: Data) => void;
lbl: (data: Data) => void;
}
謝謝!
是否存在TypeScript等效的C#的Func關鍵字?命名函數類型
在今天轉換一些現有代碼的TypeScript的初步探索,我使用類/對象的接口,但發現我自己複製函數類型不必要的。我錯過了什麼嗎?
在下文中,我定義爲一個對象類型(數據),並將受益的接口從命名(數據:數據)=>空隙過於
interface Funcs {
box: (data: Data) => void;
lbl: (data: Data) => void;
}
謝謝!
函數類型(args) => t
只是對象類型{(args): t}
的縮寫,所以下面應該工作:
interface Func {
(data: Data): void;
}
interface Funcs {
box: Func;
lbl: Func;
}
在C#中,Func
需要泛型類型參數。泛型還不是TypeScript語言規範的一部分 - 但它們在路線圖中列出。
說了這話,我不確定你打算如何在這種情況下使用它 - 你是在這之後?
僞代碼:
interface Funcs {
box: Action<Data>;
lbl: Action<Data>;
}
爲了讓您定義短(即我接受類型數據的參數和返回void)。由於沒有返回值,因此我使用Action
,但您可以在這裏同樣考慮Func<Data, ResultType>
。
無論如何,我們將不得不等待泛型,看看它們是如何實現的,以及它們是否允許這種使用。
完美。謝謝。 – DazWilkin