TypeScript 函式
TypeScript 為函式引數和返回值定義了特定的語法。
關於函式,請在此 處 閱讀更多內容。
返回型別
函式返回值的型別可以被顯式定義。
如果未定義返回型別,TypeScript 會嘗試透過返回的變數或表示式的型別來推斷它。
Void 返回型別
型別 void
可用於表示函式不返回任何值。
引數
函式引數的型別定義語法與變數宣告類似。
如果未定義引數型別,TypeScript 將預設使用 any
,除非有額外的型別資訊,如下面的預設引數和類型別名部分所示。
可選引數
預設情況下,TypeScript 會假定所有引數都是必需的,但也可以顯式將其標記為可選。
示例
// `?` 運算子此處將引數 `c` 標記為可選
function add(a: number, b: number, c?: number) {
return a + b + (c || 0);
}
自己動手試一試 »
預設引數
對於具有預設值的引數,預設值放在型別註解之後
TypeScript 也可以從預設值中推斷出型別。
命名引數
為命名引數鍵入與為普通引數鍵入遵循相同的模式。
示例
function divide({ dividend, divisor }: { dividend: number, divisor: number }) {
return dividend / divisor;
}
自己動手試一試 »
Rest 引數
Rest 引數可以像普通引數一樣鍵入,但型別必須是陣列,因為 rest 引數始終是陣列。
示例
function add(a: number, b: number, ...rest: number[]) {
return a + b + rest.reduce((p, c) => p + c, 0);
}
自己動手試一試 »
類型別名
函式型別可以與類型別名分開指定。
這些型別寫起來類似於箭頭函式,關於箭頭函式,請在此 處 閱讀更多內容。
示例
type Negate = (value: number) => number;
// 在此函式中,引數 `value` 會自動從 `Negate` 型別分配 `number` 型別
const negateFunction: Negate = (value) => value * -1;
自己動手試一試 »