TypeScript 可选参数(optional parameter)
TypeScript 是一種 JavaScript 的超集,它提供了強大的類型系統,可以讓開發者更容易地開發出可靠的程式碼。在 TypeScript 中,可以使用可选參數來提供更多的彈性,讓開發者可以更容易地擴充函式的功能。
可选參數是指在定義函式時,可以指定一個或多個參數是可選的,也就是說,在調用函式時,可以不傳入這些參數,而不會導致函式報錯。
舉個例子,假設我們有一個函式 sayHello,它接受一個參數 name,用於指定要打招呼的對象:
function sayHello(name: string) {
console.log(`Hello, ${name}!`);
}
如果我們想要給 sayHello 增加一個可選參數 greeting,可以這樣寫:
function sayHello(name: string, greeting?: string) {
if (greeting) {
console.log(`${greeting}, ${name}!`);
} else {
console.log(`Hello, ${name}!`);
}
}
在上面的程式碼中,我們將 greeting 參數的型別定義為 string,並在參數名稱後面加上 ? 符號,表示這個參數是可選的。
現在,我們可以調用 sayHello 函式,傳入一個參數 name,或者傳入兩個參數 name 和 greeting:
sayHello('John'); // Hello, John!
sayHello('John', 'Hi'); // Hi, John!
可以看到,在調用 sayHello 函式時,我們可以不傳入 greeting 參數,而不會導致函式報錯。
另外,可以使用預設參數來指定可選參數的預設值,這樣就可以在調用函式時,不傳入參數,而使用預設值:
function sayHello(name: string, greeting = 'Hello') {
console.log(`${greeting}, ${name}!`);
}
sayHello('John'); // Hello, John!
在上面的程式碼中,我們將 greeting 參數的預設值設置為 Hello,所以在調用 sayHello 函式時,可以不傳入 greeting 參數,而使用預設值 Hello。
總結來說,TypeScript 提供了可选參數的功能,可以讓開發者更容易地擴充函式的功能,並提供更多的彈性。