iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >TypeScript枚举的基础知识及实例
  • 623
分享到

TypeScript枚举的基础知识及实例

2024-04-02 19:04:59 623人浏览 安东尼
摘要

目录前言typescript 中的枚举是什么在 TypeScript 中使用枚举需要注意什么常见枚举的类型枚举反向映射计算枚举总结前言 枚举是受 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 = 200
    error = 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,  // 1
    Toyota, // 2
    Subaru, // 3
    Hyundai // 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 initializer
    Subaru,
    Hyundai = Toyota * 3,
}

你可以这样声明上述枚举:


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

以上就是本文的全部内容,通过讲解什么是枚举,我们在使用枚举的时候应该注意什么。到我们常用的枚举类型(数值枚举,字符串枚举),枚举反向映射,计算枚举。相信你对枚举已经有了一定的了解

总结

到此这篇关于TypeScript枚举的基础知识及实例的文章就介绍到这了,更多相关TypeScript枚举基础内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: TypeScript枚举的基础知识及实例

本文链接: https://www.lsjlt.com/news/154334.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • TypeScript枚举的基础知识及实例
    目录前言TypeScript 中的枚举是什么在 TypeScript 中使用枚举需要注意什么常见枚举的类型枚举反向映射计算枚举总结前言 枚举是受 TypeScript 支持的数据类型...
    99+
    2024-04-02
  • C#枚举类型的基础知识
    这篇文章主要讲解了“C#枚举类型的基础知识”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的基础知识”吧!C#枚举示例:enum WeekDay  S...
    99+
    2023-06-18
  • Java面向对象基础知识之枚举
    目录一、枚举的定义二、枚举的声明三、枚举的转换四、枚举的方法五、标志枚举(二进制枚举)总结一、枚举的定义 枚举是一组命名整型常量。枚举类型是使用enum关键字声明的。 C# 枚举是值...
    99+
    2024-04-02
  • Go语言基础枚举的用法及示例详解
    目录概述一、普通枚举二、自增枚举注意代码 概述 将变量的值一一列举出来,变量只限于列举出来的值的范围内取值 Go语言中没有枚举这种数据类型的,但是可以使用const配合iota模式来...
    99+
    2024-04-02
  • java中Class类的基础知识点及实例
    1、说明 Class本身也是一个类。 Class对象只能由系统确定。 JVM中只有一个Class实例可以加载一个类。 Class对应于JVM中加载的.class文件。 每一类的实例都...
    99+
    2024-04-02
  • typescript快速上手的基础知识篇
    目录学习编程的几个阶段原始数据类型1 string2 number3 boolean4 任意类型any5 undefined与null6 空 void数组类型接口类型(对象类型)1 ...
    99+
    2022-12-30
    typescript基础知识快速上手 typescript快速上手
  •  typeScript入门基础知识有哪些
    本文小编为大家详细介绍“ typeScript入门基础知识有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“ typeScript入门基础知识有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-29
  • java向下转型基础知识点及实例
    1、概念 向下转型就是父类对象转成子类对象。我们把一个父类引用 Animal类型的引用 给了一个 Bird类型 的引用,这就是向下转型 2、格式 子类 子类对象=(子类)父类实例 ...
    99+
    2024-04-02
  • Java基础之枚举Enum类案例详解
    目录一、文章序言二、代码实践三、面试相关一、文章序言 Java中引用类型:数组、类、接口、枚举、注解 枚举这个既熟悉又陌生的东西具体再哪里可以使用呢? 什么是枚举? 枚举是一个引用...
    99+
    2024-04-02
  • Python基础知识实例分析
    这篇文章主要介绍了Python基础知识实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python基础知识实例分析文章都会有所收获,下面我们一起来看看吧。在Python 语言中,对象是通过引用传递的。多元...
    99+
    2023-06-17
  • java局部变量表的基础知识点及实例
    说明 1、局部变量表也叫局部变量数组或本地变量表。定义为一个数组,主要用于存储方法参数和定义方法中的局部变量。这些数据类型包括各种基本数据类型、对象参考和returnAddress类...
    99+
    2024-04-02
  • Python 正则表达式基础知识点及实例
    1. 什么是正则表达式 正则表达式(Regular Expressions),也称为 “regex” 或 “regexp” 是使用单个字符串来描述、匹配一系列匹配某个句法规则的字符...
    99+
    2024-04-02
  • C#枚举类型的基础讲解
    本篇内容主要讲解“C#枚举类型的基础讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的基础讲解”吧!对于C#枚举类型不仅可以提高程序的可读性,而且可以减少因底层值发生改变而导致的程...
    99+
    2023-06-18
  • HTTP报文及ajax基础知识的示例分析
    小编给大家分享一下HTTP报文及ajax基础知识的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!HTTP报文客户端传递给...
    99+
    2024-04-02
  • Java中的枚举相关知识点总结
    这篇文章主要讲解了“Java中的枚举相关知识点总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的枚举相关知识点总结”吧!Java中的枚举枚举通常是一组相关的常量集合,其他编程语言...
    99+
    2023-06-15
  • AngularJS基础知识的示例分析
    这篇文章主要介绍了AngularJS基础知识的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。指令AngularJS 指令是扩展的 H...
    99+
    2024-04-02
  • Android基础知识及线性布局的示例分析
    这篇文章主要介绍Android基础知识及线性布局的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.常见控件的基本属性android:id="@+id/button1":【设置控件id】a...
    99+
    2023-06-26
  • RabbitMQ的基础知识
    目录RabbitMQ1.对MQ的介绍2.RabbitMQ的六种模式 及工作原理3.hello world队列4.工作队列模式5.消息应答机制自动应答手动应答消息自动进行重新入队6.R...
    99+
    2024-04-02
  • php聚合式迭代器的基础知识点及实例代码
    说明 1、实现其他迭代器功能的接口,相当于在其他迭代器上安装一个外壳,只有一种方法。 2、聚合迭代器可以与许多迭代器结合,实现更高效的迭代。 实例 class MainItera...
    99+
    2024-04-02
  • python的基础知识
    1.python中的注释 ctrl + / 批量注释 块注释: 上下三个双引号中间的部分呢全部被注释" " "这是一个多行注释 " " " python的脚本编写 print('hello pyth...
    99+
    2023-01-31
    基础知识 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作