iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
自我挑戰組

從新手開始TypeScript系列 第 26

Day26-TypeScript(TS)的函式多載(Overloads)

前面講了那麼多函式希望大家都有好好吸收,
那麼我們來到了基本函式的最後一個環節了喔。
也就是TypeScript(TS)的函式多載(Overloads)

函式多載的特性是什麼呢?

函是參數個數與型別不同,
函式名稱可以命名為相同名稱,
不過需要實作多個同名的函示。

而在C#或JAVA等許多程式語言中,
函式都具有多載(Overloads)的特性。

另外在TS中,
函式多載只能有一個實作。

那麼讓握們來看看範例吧。

function add(x: number, y: number): number;
function add(x: string, y: string): string;
function add(x: any, y: any): any {
    return x + y;
}

定義多載函式add
可以傳入兩個數值
或兩個字串參數。

前兩行程式碼先定義函式簽名,
接著再實作add函式。

呼叫add函式時,
傳入的引數函式簽名中的參數回傳值的型別不相符時,
便會視為錯誤。

那麼依照上面定義的函式,
正確與錯誤呼叫的方式如下,

正確呼叫:

console.log(add(10,20));//30
console.log(add("10","20"));//1020

錯誤呼叫:

console.log(add(10));
console.log(add(10,20,30));
console.log(add(10,"20"));
console.log(add(true,false));

今日結語

函式多載有個很方便地方,
因為可以重複命名,
所以在某些情況也為工程師省下了命名的時間呢,
那麼最後大家還是繼續加油喔。


上一篇
Day25-TypeScript(TS)函式(Function)的剩餘參數(Rest Parameter)
下一篇
Day27-TypeScript(TS)的命名空間(Namespace)與模組(Modules)
系列文
從新手開始TypeScript30

尚未有邦友留言

立即登入留言