TypeScript 函式型別
TypeScript核心原則之一是對資料具有的結構進行型別檢查。
函式也不例外,首先看一段程式碼例項:
[typescript] 純文字檢視 複製程式碼function antzone(webName: string, age: number): string { return webName+"已經成立"+age+"年了"; }
以函式宣告方式建立函式,括號中規定了函式引數的型別;最後一個冒號後面規定函式返回值型別。
[typescript] 純文字檢視 複製程式碼let antzone = function(webName: string, age: number): string { return webName+"已經成立"+age+"年了"; }
以表示式方式建立函式,引數型別和返回值型別的規定與上面是一樣的。
上面方式其實是簡寫形式,如同以下程式碼:
[typescript] 純文字檢視 複製程式碼let str="螞蟻部落";
變數str的型別是由它的值推斷出來的,完整的寫法如下:
[typescript] 純文字檢視 複製程式碼let str:string="螞蟻部落";
同樣的道理,antzone也可以顯式給出型別,程式碼例項如下:
[typescript] 純文字檢視 複製程式碼let antzone: (webName:string, age:number) => string
小括號中規定引數的型別,箭頭後面是函式返回值型別;完整程式碼如下:
[typescript] 純文字檢視 複製程式碼let antzone: (webName:string, age:number) => string= function(webName: string, age: number): string { return webName+"已經成立"+age+"年了"; }
特別說明:
(1).函式的型別必須是完整的,即便函式沒有返回值,也要顯式規定void:
[typescript] 純文字檢視 複製程式碼let antzone: (webName:string, age:number) => void
(2).函式型別中引數的名稱沒必要和函式資料中的引數名稱相同,只要型別匹配即可:
[typescript] 純文字檢視 複製程式碼let antzone: (webName:string, age:number) => string= function(name: string, webAge: number): string { return name+"已經成立"+webAge+"年了"; }
函式型別推斷:
[typescript] 純文字檢視 複製程式碼let antzone = function(webName: string, age: number): string { return webName+"已經成立"+age+"年了"; }
上面程式碼可以由右邊推斷出antzone的型別為:
[typescript] 純文字檢視 複製程式碼(webName:string, age:number) => string
再來看一段程式碼例項:
[typescript] 純文字檢視 複製程式碼let antzone: (webName:string, age:number) => string= function(name, webAge){ return name+"已經成立"+webAge+"年了"; }
由左到右推斷型別。
相關文章
- 請別誤用 TypeScript 過載函式型別TypeScript函式型別
- TypeScript 學習筆記 — 函式中的型別(四)TypeScript筆記函式型別
- TypeScript魔法堂:函式型別宣告其實很複雜TypeScript函式型別
- Typescript複雜型別的宣告:寫一個工具函式庫TypeScript型別函式
- 使用條件型別實現TypeScript中的函式過載型別TypeScript函式
- TypeScript 中函式的理解?與 JavaScript 函式的區別?TypeScript函式JavaScript
- TypeScript入門1:註釋、變數常量、資料型別、函式TypeScript變數資料型別函式
- TypeScript this型別TypeScript型別
- TypeScript 泛型型別TypeScript泛型型別
- TypeScript 函式介面TypeScript函式
- TypeScript 函式相容TypeScript函式
- TypeScript---函式TypeScript函式
- TypeScript(6)函式TypeScript函式
- Python 序列型別以及函式引數型別Python型別函式
- Typescript:基本型別TypeScript型別
- TypeScript Widened型別TypeScriptIDE型別
- TypeScript Never型別TypeScript型別
- TypeScript Any型別TypeScript型別
- TypeScript 索引型別TypeScript索引型別
- TypeScript 型別相容TypeScript型別
- TypeScript 交叉型別TypeScript型別
- TypeScript void 型別TypeScript型別
- TypeScript 字串型別TypeScript字串型別
- TypeScript 型別安全TypeScript型別
- 胡說-JavaScript函式型別JavaScript函式型別
- PostgreSQL:字元——型別及函式SQL字元型別函式
- TypeScript type 型別別名TypeScript型別
- 函式引數 引數定義函式型別函式型別
- 第 8 節:函式-函式型別與作用域函式型別
- TypeScript 函式過載TypeScript函式
- TypeScript 箭頭函式TypeScript函式
- TypeScript 的 generic 函式TypeScript函式
- TypeScript 聯合型別TypeScript型別
- TypeScript 數值型別TypeScript型別
- TypeScript 布林型別TypeScript型別
- Typescript高階型別TypeScript型別
- TypeScript 對映型別TypeScript型別
- TypeScript資料型別TypeScript資料型別