了解TypeScript中函數重載的功能

了解TypeScript中函數重載的功能

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

延伸閱讀本站文章

更多TypeScript相關文章

推薦學習youtube影片

發佈留言