本文以代碼示例為主,以便讓妳更高效快捷地理解和掌握TypeScript編程中函數的相關參數要求、應用類型和相應拓展。
我們主要介紹函數的常規化參數、函數式參數、聯合類型參數以及函數的類型等。詳見下文。若需系統的學習TypeScript編程,請到這裏:
可選參數
在TypeScript中,每個參數都被認為是函數所必需的。妳可以在參數名稱的末尾加壹個?將其設置為可選的(即調用是可傳參或無參)。
例如下面函數中的lastName參數為可選的:
需要註意,可選參數必須在所有非可選參數之後,如下函數定義,將會提示錯誤:
默認參數
如果用戶傳遞undefined或未指定參數,則會賦予默認值。這些參數稱為默認初始化參數。例如下面,用“Cui”作為默認參數值傳給函數使用。
假設我們想要接收壹個函數作為參數,我們可以這樣做:
如果想接收構造函數作為形參,可按照如下形式實現:
在VS Code中,傳遞構造器參數時,默認情況下會有錯誤提示。類似
Construct signature, which lacks return-type annotation, implicitly has an 'any' return type 。
此時可修改tsconfig.json配置解決 :"noImplicitAny": false,
或者,為了便於閱讀,我們可以定義壹個構造函數的描述接口:
或者帶有構造參數的形式:
甚至可以帶有泛型參數:
如果我們想接收壹個簡單的函數而不是壹個構造函數,這幾乎壹樣操作:
或者為了便於閱讀,我們可以定義壹個描述函數的接口:
或帶參數的函數:
甚至是泛型參數:
TypeScript函數可以使用聯合類型接受多個預定義類型的參數。代碼示例如下:
TypeScript將這些參數視為其他類型的聯合的單壹類型(union),所以妳的函數必須能夠處理聯合中的任何類型的參數。示例如下:
有三種函數類型,示例如下:
這裏註意參數和返回類型的相應標註形式。若需系統的學習TypeScript編程,請到專欄壹探究竟。