TypeScript - Function Types

用 JavaScript 撰寫 Function,要馬是使用 Named function,要馬就是使用 Anonymous function。

1
2
3
4
5
6
7
//Named function
function add(x, y) {
return x+y;
}

//Anonymous function
var myAdd = function(x, y) { return x+y; };


因為 JavaScript 不具型態的關係,Function 有時候會被傳入不如預期的資料,回傳不預期的結果。像是上述的例子可能預期是用做數值的加總,但因為不具型態的關係就有可能被傳入字串,做為字串的串接使用。


TypeScript 可以在定義方法時設定參數與回傳值的型態,像是下面這樣:

function functionName(param1: Type1, [param2: Type2, ...]): Type {...}


所以上述的程式透過 TypeScript 改寫成像下面這樣,就不會碰到本來面臨的問題了。

1
2
3
4
5
function add(x: number, y: number): number {
return x+y;
}

var myAdd = function(x: number, y: number): number { return x+y; };