可選參數
- 假設這個時候我有一個需求: 要求定義一個函數可以實作
個數或者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);