可选参数
- 假设这个时候我有一个需求: 要求定义一个函数可以实现
2
个数或者3
个数的加法 - 这个时候就可以利用可选参数来进行实现
- 实现方式为,在需要进行可选的参数名称后面添加一个
?
即可实现
function add(x: number, y: number, z?: number): number {
return x + y + (z ? z : 0);
}
// let res = add(10, 20);
let res = add(10, 20, 30);
console.log(res);
- 可选参数可以配合
函数重载
一起使用,这样可以让函数重载变得更加强大
function add(x: number, y: number): number;
function add(x: number, y: number, z: number): number;
function add(x: number, y: number, z?: number) {
return x + y + (z ? z : 0);
}
let res = add(10, 20);
// let res = add(10, 20, 30);
console.log(res);
注意点
- 可选参数后面只能跟可选参数
function add(x: number, y?: number, z: number): number {
return x + (y ? y : 0) + (z ? z : 0);
}
let res = add(10, 20, 30);
console.log(res);
- 可选参数可以是一个或多个
function add(x: number, y?: number, z?: number): number {
return x + (y ? y : 0) + (z ? z : 0);
}
let res = add(10);
console.log(res);
默认参数
- 详见 "ECMAScript",41-JavaScript-函数形参默认值
function add(x: number, y: number = 10): number {
return x + y;
}
// let res = add(10);
let res = add(10, 30);
console.log(res);
剩余参数
- 详见 "ECMAScript",40-JavaScript-函数扩展运算符
function add(x: number, args: number[]) {
console.log(x);
console.log(args);
}
add(10, 20, 30, 40, 50);