# 函数
# 函数声明与函数表达式
// function declaration function sum(x: number, y: number): number { return x + y; } console.log(sum(1, 23)); // function expression const mySum: (x: number, y: number) => number = (a, b) => a + b; // 注意区分两个=>, 它们不一样 console.log(mySum(2, 2));
Copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 使用接口定义函数
interface ISum { (x: number, y: number): number; } const iSum: ISum = (m, n) => m + n; console.log(iSum(3, 4));
Copied!
1
2
3
4
5
6
7
2
3
4
5
6
7
# 可选参数
interface IOptionalSum { (x: number, y: number, z?: number): number; } const iOptionalSum: IOptionalSum = (a, b, c) => { if (c) { return a + b + c; } else { return a + b; } };
Copied!
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
WARNING
可选参数必须接在必需参数后面. 换句话说, 可选参数后面不允许再出现必需参数了.
# 默认参数
TypeScript 会将添加了默认值的参数识别为可选参数:
function add(m: number, b: number = 999): number { return m + b; } console.log(add(1)); //1000 console.log(add(1, 1)); // 2
Copied!
1
2
3
4
5
6
2
3
4
5
6
# 剩余参数
function push(array: number[], ...items: number[]) { items.forEach(function(item) { array.push(item); }); } let a = []; push(a, 1, 2, 3); console.log(a); // [1,2,3]
Copied!
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9