typescript 中實現函數重載的方式:為同一個函數名稱創建多個函數聲明,每個聲明具有不同的參數類型。根據參數類型選擇適當的函數實現,執行不同的操作。
typescript 中如何實現重載
TypeScript 允許函數具有重載,這意味著同一個函數可以接受不同類型和數量的參數并返回不同的返回值。
實現方式
TypeScript 中實現重載的方法是為同一個函數名稱創建多個函數聲明,每個聲明都有不同的參數類型。例如:
function add(a: number, b: number): number; function add(a: string, b: string): string; function add(a: any, b: any) { if (typeof a === "number" && typeof b === "number") { return a + b; } else if (typeof a === "string" && typeof b === "string") { return a + b; } else { throw new Error("Invalid argument types"); } }
在這個例子中:
- 函數 add 有兩個聲明,每個聲明定義了不同的參數類型。
- 每個聲明都有一個單獨的函數實現,該實現根據參數類型執行不同的操作。
使用規則
使用重載函數時必須遵循以下規則:
- 聲明中參數的順序和數量必須不同。
- 返回值類型可以不同。
- 編譯器將根據調用時的參數類型選擇適當的函數實現。
示例
以下示例展示了如何使用重載函數:
const sumNumbers = add(1, 2); // 返回 3 const concatStrings = add("Hello", "World"); // 返回 "HelloWorld"
注意
TypeScript 中的重載是編譯時功能。這意味著重載函數的實際實現將被編譯為單個 JavaScript 函數,該函數根據傳遞的參數動態選擇要執行的代碼。