Function Overloading 函式多載允許同名函式根據接收的參數型別或數量不同,而有不同的回傳值型別。這邊筆記一下 TypeScript 在此功能的支援程度。
內容
1. TypeScript 在使用 Function Overloading 時,可定義多個「多載簽名」(Overload Signatures)來描述不同的呼叫方式。最後必須接著一個「實作簽名」(Implementation Signature),並在此實作內透過條件判斷(如 typeof 或 if)來決定最終邏輯與回傳值。
2. 多載必須使用 function 關鍵字進行定義,無法直接在 const 定義的箭頭函式上使用多載宣告
3. 實作簽名的參數與回傳型別,必須要能夠兼容(Compatible)所有前方定義的多載簽名
程式碼範例
|
1 2 3 4 5 6 7 8 9 10 11 |
// 1. 多載簽名 (Overload Signatures) function combine(a: number, b: number): number; function combine(a: string, b: string): string; // 2. 函式實作 (Implementation Signature) function combine(a: any, b: any): any { if (typeof a === 'number' && typeof b === 'number') { return a + b; } return `${a}${b}`; } |
參考資料
1. TypeScript 筆記 – Function Overloading
按讚加入粉絲團
