
- TypeScript 基礎
- TypeScript - 首頁
- TypeScript - 路線圖
- TypeScript - 概述
- TypeScript - 環境設定
- TypeScript - 基本語法
- TypeScript 與 JavaScript
- TypeScript - 特性
- TypeScript - 變數
- TypeScript - let & const
- TypeScript - 運算子
- TypeScript 基本型別
- TypeScript - 型別
- TypeScript - 型別註解
- TypeScript - 型別推斷
- TypeScript - 數字
- TypeScript - 字串
- TypeScript - 布林值
- TypeScript - 陣列
- TypeScript - 元組
- TypeScript - 列舉
- TypeScript - Any
- TypeScript - Never
- TypeScript - 聯合型別
- TypeScript - 字面量型別
- TypeScript - 符號
- TypeScript - null 與 undefined
- TypeScript - 類型別名
- TypeScript 控制流
- TypeScript - 決策
- TypeScript - if 語句
- TypeScript - if else 語句
- TypeScript - 巢狀 if 語句
- TypeScript - switch 語句
- TypeScript - 迴圈
- TypeScript - for 迴圈
- TypeScript - while 迴圈
- TypeScript - do while 迴圈
- TypeScript 函式
- TypeScript - 函式
- TypeScript - 函式型別
- TypeScript - 可選引數
- TypeScript - 預設引數
- TypeScript - 匿名函式
- TypeScript - 函式構造器
- TypeScript - rest 引數
- TypeScript - 引數解構
- TypeScript - 箭頭函式
- TypeScript 介面
- TypeScript - 介面
- TypeScript - 擴充套件介面
- TypeScript 類和物件
- TypeScript - 類
- TypeScript - 物件
- TypeScript - 訪問修飾符
- TypeScript - 只讀屬性
- TypeScript - 繼承
- TypeScript - 靜態方法和屬性
- TypeScript - 抽象類
- TypeScript - 訪問器
- TypeScript - 鴨子型別
- TypeScript 高階型別
- TypeScript - 交叉型別
- TypeScript - 型別守衛
- TypeScript - 型別斷言
- TypeScript 型別操作
- TypeScript - 從型別建立型別
- TypeScript - Keyof 型別運算子
- TypeScript - Typeof 型別運算子
- TypeScript - 索引訪問型別
- TypeScript - 條件型別
- TypeScript - 對映型別
- TypeScript - 模板字面量型別
- TypeScript 泛型
- TypeScript - 泛型
- TypeScript - 泛型約束
- TypeScript - 泛型介面
- TypeScript - 泛型類
- TypeScript 其他
- TypeScript - 三斜線指令
- TypeScript - 名稱空間
- TypeScript - 模組
- TypeScript - 環境宣告
- TypeScript - 裝飾器
- TypeScript - 型別相容性
- TypeScript - Date 物件
- TypeScript - 迭代器和生成器
- TypeScript - Mixins
- TypeScript - 實用程式型別
- TypeScript - 裝箱和拆箱
- TypeScript - tsconfig.json
- 從 JavaScript 到 TypeScript
- TypeScript 有用資源
- TypeScript - 快速指南
- TypeScript - 有用資源
- TypeScript - 討論
TypeScript - 匿名函式
匿名函式
在 TypeScript 中,匿名函式是指沒有特定名稱的函式。這些函式是在執行時動態建立的。我們可以將它們儲存在變數中,並使用這些變數呼叫它們。
我們可以將匿名函式定義為函式表示式。
我們可以使用函式宣告和函式表示式在 TypeScript 中定義函式。
函式宣告定義了一個命名函式。而要定義匿名函式,則使用函式表示式。
函式表示式可以命名,但當函式表示式未命名時,則稱為匿名函式。
使用 function 關鍵字定義匿名函式
您可以看到在 TypeScript 中建立命名函式的通用語法。
function funcName (param1: string, param2: number): void { // code for the function }
funcName 是上面函式中的識別符號。我們可以透過刪除 funcName 識別符號來使上述函式成為匿名函式。我們可以僅使用 function 關鍵字定義匿名函式,然後在括號中新增引數。此外,我們可以將匿名函式儲存在變數中。
您可以按照以下語法在 TypeScript 中建立匿名函式。
語法
我們在下面的語法中將 funcName() 函式轉換為匿名函式
var funcName: (param1: string, param2: string) => void = function ( param1: string, param2: string ): void { // code for anonymous function };
現在,funcName 不是函式識別符號,而是儲存一個函式。我們已定義 funcName 變數的型別,它是具有兩個字串型別引數和 void 型別返回值的函式。之後,我們使用賦值運算子將匿名函式賦值給 funcName 變數。
示例
在下面的示例中,我們定義了 funcName 變數並將匿名函式儲存在其中。您可以觀察我們如何使用 funcName 變數呼叫匿名函式。在使用 funcName 變數呼叫匿名函式時,我們還傳遞了兩個引數。
在此示例中,我們建立了一個數字陣列。之後,我們呼叫 sort() 方法以按降序對數字陣列進行排序。sort() 方法接受一個回撥函式,該函式返回數字值以對陣列進行排序,並且回撥函式是匿名箭頭函式。
var funcName: (param1: string, param2: string) => void = function ( param1: string, param2: string ): void { // code for the anonymous function console.log("The value of the param1 is " + param1); console.log("The value of the param2 is " + param2); }; funcName("TutorialsPoint", "TypeScript");
編譯後,它將生成以下 JavaScript 程式碼
var funcName = function (param1, param2) { // code for the anonymous function console.log("The value of the param1 is " + param1); console.log("The value of the param2 is " + param2); }; funcName("TutorialsPoint", "TypeScript");
以上程式碼將產生以下輸出 -
The value of the param1 is TutorialsPoint The value of the param2 is TypeScript
使用箭頭函式定義匿名函式
箭頭函式是另一種型別的匿名函式。使用箭頭語法,我們可以無需 function 關鍵字和函式識別符號即可定義函式。
您可以按照以下語法使用箭頭語法定義匿名函式,並瞭解為什麼它被稱為箭頭語法。
語法
var test: function_Type = (parameters): return_type => { // anonymous function code }
在上面的語法中,test 是函式型別的普通變數。這裡,function_type 是箭頭函式的型別。之後,() => {} 是箭頭函式的語法。此外,我們可以在括號中為箭頭函式新增引數,並且可以在花括號中編寫箭頭函式的程式碼。
示例
在下面的示例中,我們定義了 test 變數,它儲存匿名箭頭函式。箭頭函式在將值作為引數傳遞後返回數字值。
我們使用 test 變數呼叫了箭頭函式,並將它的返回值儲存在 result 變數中。
在此示例中,我們建立了一個數字陣列。之後,我們呼叫 sort() 方法以按降序對數字陣列進行排序。sort() 方法接受一個回撥函式,該函式返回數字值以對陣列進行排序,並且回撥函式是匿名箭頭函式。
var test: (valeu1: number) => number = (value1: number): number => { return 10 * value1; }; var result = test(12); console.log("The returned value from the test function is " + result);
編譯後,它將生成以下 JavaScript 程式碼 -
var test = function (value1) { return 10 * value1; }; var result = test(12); console.log("The returned value from the test function is " + result);
以上程式碼將產生以下輸出 -
The returned value from the test function is 120
使用上述語法和示例,我們學習瞭如何使用匿名函式。我們將在編寫即時程式碼時學習匿名函式的使用場景。
將匿名函式用作回撥函式
在使用 TypeScript 時,我們經常需要在呼叫任何方法或函式時呼叫回撥函式。我們可以將回調函式作為另一個函式的引數傳遞。我們可以使用匿名箭頭函式來保持回撥函式的語法簡短。
您可以按照以下語法將箭頭函式用作回撥函式。
語法
Array.sort(()=>{ // code for the callback function })
在上面的語法中,我們使用箭頭函式作為回撥函式。
示例
在此示例中,我們建立了一個數字陣列。之後,我們呼叫 sort() 方法以按降序對數字陣列進行排序。sort() 方法接受一個回撥函式,該函式返回數字值以對陣列進行排序,並且回撥函式是匿名箭頭函式。
var numbers: Array<number> = [90, 64, 323, 322, 588, 668, 9, 121, 34, 1, 2]; numbers.sort((value1: number, value2: number): number => { return value1 < value2 ? 1 : -1; }); console.log(numbers);
編譯後,它將生成以下 JavaScript 程式碼 -
var numbers = [90, 64, 323, 322, 588, 668, 9, 121, 34, 1, 2]; numbers.sort(function (value1, value2) { return value1 < value2 ? 1 : -1 }); console.log(numbers);
以上程式碼將產生以下輸出 -
[ 668, 588, 323, 322, 121, 90, 64, 34, 9, 2, 1 ]
我們可以透過兩種方式建立匿名函式,一種是僅使用 function 關鍵字,另一種是使用箭頭語法。但是,箭頭語法是最好的,因為它的語法非常簡潔。