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 提供了可选參數的功能,可以讓開發者更容易地擴充函式的功能,並提供更多的彈性。