日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TypeScript 枚举指南

發布時間:2024/4/11 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TypeScript 枚举指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

枚舉是受 TypeScript 支持的數據類型。枚舉允許您定義一組命名常量。使用它們可以更輕松地記錄意圖或創建一組不同的案例。枚舉大多數用于面向對象的編程語言(如 Java 和 C#)中,現在也可以 TypeScript 中使用。它們是 TypeScript 的少數功能之一,它不是 JavaScript 的類型級擴展。接下來我將要演示 TypeScript 枚舉的基礎知識以及用例,各種枚舉類型和學習的后續步驟。

TypeScript 中的枚舉是什么

許多編程語言(例如 C,C# 和 Java)都具有 enum 數據類型,而 JavaScript 沒有。但是 TypeScript 可以,TypeScript 具有基于數字和基于字符串的枚舉。TypeScript 枚舉允許開發人員定義一組命名常量。使用它們可以更輕松地記錄意圖或創建一組不同的案例。

枚舉的語法如下:

enum States {Apple,Orange,Banana,Watermelon } // 使用 var fruit = States.Watermelon;

在 TypeScript 中使用枚舉需要注意什么

首先枚舉中的值是常量,即枚舉是類型安全的,在重新分配值時會返回編譯錯誤。其次枚舉應該是有限的,有助于用戶創建一個自定義的常量系統。枚舉在被編譯后是一個對象:在 JavaScript 中創建內存有效的自定義常量,使用靈活易于表達記錄意圖方便作為判斷用例。

enum requestStatus {success = 200error = 400 } let requestStatus; (function (requestStatus) {requestStatus[requestStatus["success"] = 200] = "success"requestStatus[requestStatus["error"] = 400] = "error" })(requestStatus || (requestStatus = {}));// requestStatus: // { '200': 'success', '400': 'error', error: 400, success: 200 }

常見枚舉的類型

數值枚舉字符串枚舉 是我們在 TypeScript 中最常用的枚舉類型,下面我將用例子向你們介紹它們的特點以及如何使用它們。

** 數字枚舉

數字枚舉以字符串存儲數字值 。讓我們使用 enum 關鍵字定義它們。下面我將用存儲一組不同類型汽車的示例展示 TypeScript 中的數字枚舉:

enum CarType {Honda,Toyota,Subaru,Hyundai }

枚舉值 CarType 有四個值:本田,豐田,斯巴魯和現代。枚舉值從 0 開始,并且每個成員的值遞增 1 ,如下所示:

Honda = 0

Toyota = 1

Subaru = 2

Hyundai = 3

如果需要你可以自己初始化第一個數值,如下所示:

enum CarType {Honda = 1,Toyota,Subaru,Hyundai }

在上面的示例中,Honda 使用數值 1 初始化了第一個成員。剩余的數字將加一。

你可能會想,如果我更改最后一個值,之前的值會根據最后定義的數值遞減嗎?讓我們來試試:

enum CarType {Honda,Toyota,Subaru,Hyundai = 100 }

遺憾的是這是行不通的,當前例子的數值是:

enum CarType {Honda, // 1Toyota, // 2Subaru, // 3Hyundai // 100 }

注意:不必為枚舉成員分配順序值。你可以為其分配任何所需的值

字符串枚舉

字符串枚舉類似于數字枚舉,但是它們的枚舉值是使用字符串值而不是數字值初始化的。 字符串枚舉比數字枚舉具有更好的可讀性 ,從而更容易調試程序。

以下示例使用與數值枚舉示例相同的信息,但以字符串枚舉表示:

enum CarType {Honda = "HONDA",Toyota = "TOYOTA",Subaru = "SUBARU",Hyundai = "HYUNDAI" }// 訪問字符串枚舉 CarType.Toyota; //return TOYOTA

注意:字符串枚舉值需要單獨初始化。

枚舉反向映射

枚舉可以使用其相對應的枚舉成員值檢索 num 值。使用反向映射,可以訪問成員值和成員值的名稱,請看下面的例子:

enum CarType {Honda = 1,Toyota,Subaru,Hyundai } CarType.Subaru; //return 3 CarType.["Subaru"]; //return 3 CarType[3]; //return Subaru

CarType[3] 由于反向映射,返回其成員名稱“ Subaru”。讓我們看另一個例子:

enum CarType {Honda = 1,Toyota,Subaru,Hyundai } console.log(CarType)

在瀏覽器的控制臺中將看到以下輸出:

{ '1':'Honda','2':'Toyota','3':'Subaru','4':'Hyundai',Honda:1,Toyota:2,Subaru:3,Hyundai:4 }

枚舉的每個值在內部存儲的枚舉對象中出現兩次。

計算枚舉

枚舉成員的值可以是常量值或計算值。請看下面的示例:

enum CarType {Honda = 1,Toyota = getCarTypeCode('toyota'),Subaru = Toyota * 3,Hyundai = 10 }function getCarTypeCode(carName: string): number {if (carName === 'toyota') {return 5;} }CarType.Toyota; // returns 5 CarType.Subaru; // returns 15

如果枚舉既包含計算成員又包含常量成員,則未初始化的枚舉成員將首先出現,也可能在其他帶有數字常量的初始化成員之后。下一個示例將顯示錯誤:

enum CarType {Toyota = getCarTypeCode('toyota'),Honda, // Error: Enum member must have initializerSubaru,Hyundai = Toyota * 3, }

你可以這樣聲明上述枚舉:

enum CarType {Honda,Hyundai,Toyota = getCarTypeCode('toyota'),Subaru = Toyota * 3

以上就是本文的全部內容,通過講解什么是枚舉,我們在使用枚舉的時候應該注意什么。到我們常用的枚舉類型(數值枚舉,字符串枚舉),枚舉反向映射,計算枚舉。相信你對枚舉已經有了一定的了解,如果文章有什么沒有講明白的或是有什么錯誤的地方歡迎指正,感激不盡。

總結

以上是生活随笔為你收集整理的TypeScript 枚举指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。