iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何分析TypeScript枚举类型
  • 248
分享到

如何分析TypeScript枚举类型

2023-06-22 00:06:30 248人浏览 独家记忆
摘要

这篇文章给大家介绍如何分析typescript枚举类型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.概述所谓的枚举类型就是为一组数值赋予名字。enum类型在c++、Java语言中比较常见,TypeScript在ja

这篇文章给大家介绍如何分析typescript枚举类型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

    1.概述

    所谓的枚举类型就是为一组数值赋予名字。

    enum类型在c++Java语言中比较常见,TypeScriptjavascript原有的类型基础上也增加了enum类型。

    比如我们需要定义一组角色,需要使用数字表示,就可以使用如下代码定位:

    enum role{    STUDENT,    TEACHER,    ADMIN}

    上面代码中我们定义了role为一个枚举类型,这个里面有是三个值,TypeScript会为每个值自动的分配序号,默认从0开始依次排列,它们的值依次为0 1 2。

    当然我们也可以自定义每个值,如果非全部定义则后面的值会根据前面的值自增。

    示例代码如下:

    enum role1 {    student = 1,    // 后面两个值依次为2 3    teacher,    admin,}enum role2 {    // 每个名具有指定的值    student = 1,    teacher = 3,    admin = 6,}

    2.数字枚举

    我们上面介绍的例子就是数字枚举类型,但是还有一个注意点就是如果某个字段使用了常量或者计算后的值 ,我们就必须设置紧跟着字段的初始值 ,否则将会抛出异常。

    示例代码如下:

    ;(function () {  // 定义一个函数  const getValue: () => number = (): number => {    return 0  }  enum role1 {    student = getValue(),    // teacher, // error 枚举成员必须具有初始化表达式。    // admin, // error 枚举成员必须具有初始化表达式。  }  const TEACHER_ROLE: number = 3  // 每个名具有指定的值  enum role2 {    student,    teacher = TEACHER_ROLE,    // admin, // error 枚举成员必须具有初始化表达式。  }})()

    2.1反向映射

    所谓的反向映射就是可以通过key访问到value,通过value访问到key。

    我们可以通过.名称或者['名称']的方式取到每个具体的值,也可以通过[数值]的方式取到每个数值对应的名称,

    示例代码如下:

    enum role {    student,    teacher,    admin,}console.log(role.admin) // 2console.log(role['teacher']) //1console.log(role[0]) //‘student'

    其实TypeScript中的枚举类型编译成JavaScript代码之后就是一个对象,我们将上面那个枚举类型编译一下,

    编译后的代码如下:

    "use strict";var role;(function (role) {    role[role["student"] = 0] = "student";    role[role["teacher"] = 1] = "teacher";    role[role["admin"] = 2] = "admin";})(role || (role = {}));

    这样看我们可能好理解,其实就是通过一个自调函数将值赋值给role对象,赋值之后如下:

    var role = {    "student": 0,    "teacher": 1,    "admin"  : 2,     0: "student",     1: "teacher",     2: "admin", }

    值得注意的是 反向映射仅仅支持在数字枚举 中,不支持在2.4版本中新增的字符串枚举 中。

    3.字符串枚举

    所谓的字符串枚举就是枚举中的每个字段的值必须都是字符串,或者是枚举中的其他字段,

    示例代码如下:

    enum Person {  name = '一碗周',  hobby = 'coding',  // 设置枚举中的字段作为值  myName = name,}console.log(Person.name, Person.myName) // 一碗周 一碗周

    4.const枚举

    在我们定义了普通枚举之后,被编译成JavaScript代码之后会创建一个对应的对象,如果使用枚举是增了增加程序的可读性,且并不需要编译之后的对象。在TypeScript1.4中增加了const枚举。

    const枚举被翻译为完全嵌入枚举 ,所谓的完全嵌入枚举就是编译之后没有对应的对象,只是从枚举中拿到对应你的值然后进行替换。定义const枚举只需要在普通枚举前面加上const关键字。

    示例代码如下:

    const enum role {    student,    teacher,    admin,}let admin = role.admin

    如上代码会被编译为如下:

    let admin = 2 ;

    关于如何分析TypeScript枚举类型就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

    --结束END--

    本文标题: 如何分析TypeScript枚举类型

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

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

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

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

    下载Word文档
    猜你喜欢
    • 如何分析TypeScript枚举类型
      这篇文章给大家介绍如何分析TypeScript枚举类型,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.概述所谓的枚举类型就是为一组数值赋予名字。enum类型在C++、Java语言中比较常见,TypeScript在Ja...
      99+
      2023-06-22
    • TypeScript枚举类型
      目录1.概述2.数字枚举2.1反向映射3.字符串枚举4.const枚举5.总结1.概述 所谓的枚举类型就是为一组数值赋予名字。 enum类型在C++、Java语言中比较常见,Typ...
      99+
      2024-04-02
    • 如何理解TypeScript枚举类型
      本篇内容主要讲解“如何理解TypeScript枚举类型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解TypeScript枚举类型”吧!前言:TypeScript 在 ES 原有类型基础上...
      99+
      2023-06-25
    • 详解 TypeScript 枚举类型
      目录1. 数字枚举2. 字符串枚举3. 反向映射4. 异构枚举5. 常量枚举6. 枚举成员类型和联合枚举类型(1)枚举成员类型(2)联合枚举类型7. 枚举合并前言: TypeScri...
      99+
      2024-04-02
    • C#枚举类型举例分析
      本篇内容主要讲解“C#枚举类型举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型举例分析”吧!C#枚举类型实例演示  using System&nb...
      99+
      2023-06-17
    • C#枚举类型的实例分析
      本篇内容主要讲解“C#枚举类型的实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的实例分析”吧!C#枚举类型实例是你学习C#枚举类型的捷径,那让我们开始吧:public&nbs...
      99+
      2023-06-17
    • java中枚举类型定义和重写枚举的示例分析
      这篇文章将为大家详细讲解有关java中枚举类型定义和重写枚举的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是枚举类型枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用...
      99+
      2023-05-30
      java
    • 【Java】枚举类型
      文章目录 一、枚举类型1.1 什么是枚举类型1.2 Java中枚举类型的特点 二、枚举类型的使用2.1 创建语法2.2 常用方法2.3 使用案例 三、枚举的优缺点 一、枚举类型 ...
      99+
      2023-09-02
      java enum 枚举
    • php如何实现枚举类型
      这篇文章主要介绍“php如何实现枚举类型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何实现枚举类型”文章能帮助大家解决问题。枚举类型优点枚举类型在编程中有很多优点,如下:可读性高:枚举类型...
      99+
      2023-07-05
    • python枚举类型
      笔记: 一:枚举类型的定义二:枚举类和普通类的区别 1:值不可变 2:具有防止相同标签得功能,不同标签的值可以相同!三:枚举类型、枚举值、枚举名称 1:VIP.YELLOW.Value 获得标签的值 2:VIP....
      99+
      2023-01-30
      类型 python
    • C#枚举类型与位域枚举Enum
      一、概述 定义一个值类型,其中包含固定值集合。枚举类型变量可以是此集合中的任意一个或多个值。 枚举使用enum关键字来声明,与类同级。 枚举本身可以有修饰符,但枚举的成员始终是公共的...
      99+
      2024-04-02
    • java枚举类型-Enum
      目录前言 应用 定义 基本Enum特性 Enum的静态导入 Enum中添加新方法 Switch语句中的Enum Enum的继承 EnumSet的使用 EnumMap的使用 常量相关方...
      99+
      2024-04-02
    • TypeScript中枚举类型的理解与应用场景
      目录一、是什么二、使用数字枚举字符串枚举异构枚举本质三、应用场景总结一、是什么 枚举是一个被命名的整型常数的集合,用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为...
      99+
      2024-04-02
    • C语言枚举类型如何定义
      C语言枚举类型可以使用关键字`enum`来定义。定义枚举类型的语法格式如下:```cenum 枚举类型名 {枚举常量1,枚举常量2,...
      99+
      2023-10-10
      C语言
    • MySQL数据类型enum 枚举类型
      例如: 性别 gender 男 女 保密 基本语法: enum(数据值 1,数据值 2...); 数据值列表在 255 个以内,使用 1 个字节来存储数据值列表超过 255,但是小于...
      99+
      2024-04-02
    • 【Java系列】深入解析枚举类型
      序言 即便平凡的日子仿佛毫无波澜,但在某个特定的时刻,执着的努力便会显现出它的价值和意义。 希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流 问题 思考一下这寄个问题,我们将围绕...
      99+
      2023-09-01
      java 开发语言 枚举
    • 如何在mysql中使用枚举类型
      小编给大家分享一下如何在mysql中使用枚举类型,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!枚举类型在mysql的使用方法:1...
      99+
      2024-04-02
    • C#枚举类型怎么用
      这篇文章主要为大家展示了“C#枚举类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#枚举类型怎么用”这篇文章吧。C#枚举类型使用的时候需要掌握的有哪些方面呢?首先我们来看看一个例子:p...
      99+
      2023-06-17
    • C#枚举类型的语法
      本篇内容主要讲解“C#枚举类型的语法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的语法”吧!C#枚举类型语法是什么呢?让我看看下面的讲解: usingSystem;&nb...
      99+
      2023-06-17
    • Python深入浅出分析enum枚举类
      目录枚举类Enum总结枚举类Enum 枚举类,在企业开发中用的比较多 当我们需要定义常量时,一个办法是用大写的变量通过整数来定义,例如月份: # 当项目中需要使用12个月份时JAN ...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作