目錄
TypeScript 函數(functions)的函數重載
TypeScript 是一種強型別的 JavaScript 語言,它可以讓開發者在程式碼中指定變數的型別,以及函數的參數和回傳值的型別,讓開發者可以在編譯時期就可以發現錯誤,減少在執行時期發生的錯誤。
TypeScript 也支援函數重載,讓開發者可以定義不同參數的函數,在執行時期,TypeScript 會根據參數的型別來決定要執行哪個函數,以下是一個簡單的範例:
function add(a: number, b: number): number;
function add(a: string, b: string): string;
function add(a: any, b: any): any {
return a + b;
}
let result1 = add(1, 2); // result1 為 3
let result2 = add("Hello", "World"); // result2 為 "HelloWorld"
上面的程式碼中,我們定義了兩個函數 add
,一個接受兩個 number
型別的參數,另一個接受兩個 string
型別的參數,當我們呼叫 add
函數時,TypeScript 會根據參數的型別來決定要執行哪個函數,如果參數的型別不符合任何一個函數的定義,就會執行最後一個函數,也就是 any
型別的函數。
函數重載的另一個好處是,我們可以定義不同參數數量的函數,例如:
function add(a: number, b: number): number;
function add(a: number, b: number, c: number): number;
function add(a: any, b: any, c?: any): any {
return c ? a + b + c : a + b;
}
let result1 = add(1, 2); // result1 為 3
let result2 = add(1, 2, 3); // result2 為 6
上面的程式碼中,我們定義了兩個函數 add
,一個接受兩個 number
型別的參數,另一個接受三個 number
型別的參數,當我們呼叫 add
函數時,TypeScript 會根據參數的數量來決定要執行哪個函數,如果參數的數量不符合任何一個函數的定義,就會執行最後一個函數,也就是 any
型別的函數。
總結來說,TypeScript 的函數重載可以讓開發者定義不同參數型別和參數數量的函數,讓程式碼更加的清晰易讀,也可以減少程式碼的重複,讓開發者可以更加有效率的開發出程式。
推薦閱讀文章
Function Overloading in TypeScript
TypeScript Functions
Advanced Types in TypeScript
Interfaces in TypeScript
Generics in TypeScript</a