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,或者傳入兩個參數 namegreeting

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

Categorized in:

Tagged in: