一般使用中,我们可以不必完整写出函数类型,因为 TypeScript 会为我们自动推断出类型。
- // 书写完成函数类型
- let sum: (num1: number, num2: number) => number;
- sum = function(num1, num2) {
- return num1 + num2
- }
- sum(1,2) // 3
参数名后面接 ?,就是可选参数。注意:可选参数必须跟在必须参数后面
- let square: (x: number, y: number, s?: number) => number;
- square = function(width: number, height: number, scale?: number): number {
- if (scale) {
- return width * height * scale;
- } else {
- return width * height;
- }
- };
- square(5, 6); // 30
- square(5, 6, 2); // 60
使用 = 给参数赋默认值。
没有给参数传值或传 undefined 时,参数的值就是默认值。
在所有的必须参数后带默认值的参数都是可选的。
有默认值的参数不一定放在必须参数后面,也可以放在前面,当传 undefined 的时,就取默认值。
- function square(width = 6, height = 6, scale: number, cut = 10): number {
- return width * height * scale - cut;
- }
- square(5, undefined, 2); // 5 * 6 * 2 - 10 = 50
- function max(a: number, b: number, ...resArr: number[]): number {
- return Math.max(a, b, ...resArr);
- }
- max(10, 5, 6, 100, 200); // 200