TypeScript 枚举使用整理

2023-11-11

一、定义 enum

使用枚举我们可以定义一些有名字的数字常量。枚举通过enum关键字定义。

枚举的定义和C#中有些类似。

enum Direction{
    Up=1,
    Down,
    Left,
    Right
}
console.info(Direction);
console.info(Direction.Down);//获取枚举的值
console.info(Direction[2]); //获取枚举值对应的名称定义

枚举结构输出结果

TypeScript 中Enum定义的详细说明(转子TypeScript中文官网):

一个枚举类型可以包含零个或多个枚举成员。 枚举成员具有一个数字值,它可以是 常数或是计算得出的值 当满足如下条件时,枚举成员被当作是常数:

  • 不具有初始化函数并且之前的枚举成员是常数。 在这种情况下,当前枚举成员的值为上一个枚举成员的值加1。 但第一个枚举元素是个例外。 如果它没有初始化方法,那么它的初始值为 0
  • 枚举成员使用常数枚举表达式初始化。 常数枚举表达式是TypeScript表达式的子集,它可以在编译阶段求值。 当一个表达式满足下面条件之一时,它就是一个常数枚举表达式:
    • 数字字面量
    • 引用之前定义的常数枚举成员(可以是在不同的枚举类型中定义的) 如果这个成员是在同一个枚举类型中定义的,可以使用非限定名来引用。
    • 带括号的常数枚举表达式
    • +-~ 一元运算符应用于常数枚举表达式
    • +-*/%<<>>>>>&|^ 二元运算符,常数枚举表达式做为其一个操作对象 若常数枚举表达式求值后为 NaNInfinity,则会在编译阶段报错。
二、常数枚举 const枚举类型被编译成一个对象,它包含双向映射( name ->  value)和( value ->  name)。

常数枚举是在enum关键字前使用const修饰符。

常数枚举只能使用常数枚举表达式并且不同于常规的枚举的是它们在编译阶段会被删除。 

常数枚举成员在使用的地方被内联进来。 这是因为常数枚举不可能有计算成员。

const enum Directions {
    Up,
    Down,
    Left,
    Right
}

三、外部枚举 declare

外部枚举用来描述已经存在的枚举类型的形状。

外部枚举和非外部枚举之间有一个重要的区别,在正常的枚举里,没有初始化方法的成员被当成常数成员。 对于非常数的外部枚举而言,没有初始化方法时被当做需要经过计算的。

declare enum Enum {
    A = 1,
    B,
    C = 2
}

更多:

TypeScript 泛型<T>使用整理

TypeScript 函数使用整理

TypeScript 类使用整理

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeScript 枚举使用整理 的相关文章

随机推荐

  • Mqtt通信协议详解

    文章目录 1 简介mqtt 2 mqtt协议实现 3 Mqtt数据包 4 QoS等级 5 mqtt传输安全保证 5 1 应用层 5 2 传输层 5 2 1 TLS安全协议 5 3 网络层 1 简介mqtt MQTT Message Queu
  • Unity3D官方教程:WebGL

    什么是 Unity WebGL WebGL工程选项允许Unity以JavaScript程序形式发布使用HTMl5技术和WebGL渲染API 在网页浏览器中运行的Unity内容 为了构建和测试WebGL内容 在 Build Player 窗口
  • 计算机提示vcruntime140.dll丢失是什么意思?vcruntime140.dll丢失的解决方法(详细方法)

    计算机丢失vcruntime140 dll是什么意思 经常看到有小伙伴有在网上问这样的问题 电脑上这个vcruntime140 dll文件丢失的问题经常发生吧 那么就很有必要给大家详细的说说这一方面的问题了 下面我们来看看 第一 vcrun
  • 工具推荐

    关注它 不迷路 本文章中所有内容仅供学习交流 不可用于任何商业用途和非法用途 否则后果自负 如有侵权 请联系作者立即删除 1 在线地址 http 107 151 202 163 8129 2 工具介绍 由于还没想好网站名字 目前仅以ip形式
  • 理解ROS节点和在中.launch文件启动节点

    理解ROS节点 1 图概念概述 Nodes 节点 一个节点即为一个可执行文件 它可以通过ROS与其它节点进行通信 Messages 消息 消息是一种ROS数据类型 用于订阅或发布到一个话题 Topics 话题 节点可以发布消息到话题 也可以
  • 微信小程序云开发入门

    参考链接 1条消息 微信小程序云开发入门详细教程 Yunlord的博客 CSDN博客 微信小程序云开发 1 新建小程序项目 选择使用云开发 进入小程序后点击云开发创建云环境 选择免费版的环境如果提示余额不足欠费进入腾讯云 如果是小程序进入选
  • 【数据库CS751】Union的用法以及含义

    目录 一 Union的含义 二 Union的用法 1 列数一样 这个很重要 2 union与union all 3 union可以排序么 4 别名会影响union么 那么别名会不会影响排序 那么之前说过了各种连接 其实union本质上还是和
  • Backup database plus archivelog delete input;

    Backup database plus archivelog 会备份归档日志Backup database plus archivelog delete input 会备份归档日志并且会在备份结束后删除默认目录下的归档日志 datafil
  • PAT C入门题目-7-17 成绩转换 (15 分)(switch-case)

    7 17 成绩转换 15 分 本题要求编写程序将一个百分制成绩转换为五分制成绩 转换规则 大于等于90分为A 小于90且大于等于80为B 小于80且大于等于70为C 小于70且大于等于60为D 小于60为E 输入格式 输入在一行中给出一个整
  • Python 学习4.1字典

    一 字典内包含的内容是一系列键和它们对应的值 字典放在花括号 中 键和值之间用冒号 分隔 键值对之间用 分隔 想储存多少键值对都可以 eg 输入 a zwj 250 zzy 251 250 zwj print a zwj print a 2
  • 神经网络容易受到对抗攻击,网络攻防原理与技术

    1 信息化战争的作战原则是什么 三项基本原则 一是隐蔽 二是快速 三是高效 隐蔽 就是通过隐身 欺骗等手段 确保 先敌发现 先敌攻击 快速 就是依托情报监视与侦察和快速打击系统 确保 发现即摧毁 高效 就是联合 集中使用高能精确弹药 确保战
  • 2023年大数据面试通关文牒系列篇

    大数据面试通关文牒系列篇 第二篇 Hadoop生态链 Round 1 HIVE HIVE 基础篇 1 Hive内部表和外部表的区别 未被external修饰的是内部表 被external修饰的为外部表 区别 内部表数据由Hive自身管理 外
  • python识别_Python手势识别与控制

    Python手势识别与控制 概述 本文中的手势识别与控制功能主要采用 OpenCV 库实现 OpenCV是一个基于BSD许可 开源 发行的跨平台计算机视觉库 可以运行在Linux Windows Android和Mac OS操作系统上 它轻
  • Linux - Centos7 搭建 JAVA 环境,安装 MAVEN

    一 下载 MAVEN 1 到官方网址下载 http maven apache org download cgi 2 下载好后 使用 FTP 类软件 将下载好的本地文件上传到 Linux 服务器上来 我使用的是 PSFTP 如果想试试这个软件
  • go语言实战-----25-----HTTP编程get/post/head、表单处理、panic处理

    一 HTTP编程get post head 1 HTTP编程 1 Go原生支持http import net http 即可 2 Go的http服务性能和nginx比较接近 3 几行代码就可以实现一个web服务 1 1 HTTP常见请求方法
  • vue插件开发以及发布

    vue插件开发
  • 关于串口通信思考

    如何给串口通信口增加LED灯作为通信指示灯 以下给出2种电路设计参考 第一种 第二种 思考 以上哪种电路更优 为什么 第一种电路 LED灯使用共阴极连接 这种方法有什么好处呢 就是在TX在高电平情况下会点亮二极管 低电平情况下不会 这个问题
  • 刷脸支付成为全球科技巨头们主攻研发方向

    相对于已经熟悉的二维码支付 一些民众对于刷脸支付是否安全表示担忧 蚂蚁金服资深算法专家李亮表示 通过软硬件的结合 智能算法与风控体系综合保证准确性和安全性 目前识别的准确率为99 99 而扫码极易植入木马和钓鱼软件 反而存在更大的安全隐患
  • [人工智能-深度学习-78]:开发环境 - pip install cv2下载失败的解决办法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122320433 目录 1 出错现象
  • TypeScript 枚举使用整理

    一 定义 enum 使用枚举我们可以定义一些有名字的数字常量 枚举通过enum关键字定义 枚举的定义和C 中有些类似 enum Direction Up 1 Down Left Right console info Direction co