位置: IT常识 - 正文

【TypeScript入门】TypeScript入门篇——枚举(enum)(typescript教程推荐)

编辑:rootadmin
【TypeScript入门】TypeScript入门篇——枚举(enum)

推荐整理分享【TypeScript入门】TypeScript入门篇——枚举(enum)(typescript教程推荐),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:typescript教程推荐,typescript 入门,typescript教程推荐,typescripte,typescript ??,typescript教程推荐,typescript implements,typescript 入门教程,内容如对您有帮助,希望把文章链接给更多的朋友!

        TypeScript是一种静态类型、可选的编程语言,它在JavaScript的基础上添加了类型检查、接口、枚举等新特性,可以让开发更加高效、代码更加健壮。在TypeScript中,枚举是一种特殊的数据类型,它可以用来定义一组命名的常量,让代码更具可读性和可维护性。        

        枚举( mei ju ) : 枚举的意思就是一一列举, 把所有情况都列举出来, 那么取值的时候, 只有这几个可以使用, 其他的都不行。

        计算机语言里面的枚举: 把所有的常量放在一个集合内, 让若干个常量变成一组有关联的内容。

目录

一、枚举的基本语法

二、自定义枚举值

三、访问枚举值

四、反向映射

五、const枚举

六、常数枚举表达式 

七、外部枚举

        TypeScript枚举(enum)是一种用于定义命名常量集合的数据类型。在TypeScript中,枚举提供了一个方便的方法来为一组有限的值命名,并将它们封装在一个命名空间中。

一、枚举的基本语法

        TypeScript枚举使用关键字“enum”来定义一个新的枚举类型。例如:

enum Direction { Up, Down, Left, Right}

        这段代码定义了一个名为Direction的枚举类型,其中包含四个常量:Up、Down、Left和Right。默认情况下,这些常量的值从0开始自动递增。

【TypeScript入门】TypeScript入门篇——枚举(enum)(typescript教程推荐)

案例实现:

enum Direction { Up, Down, Left, Right,}const move = (direction: Direction) => { switch (direction) { case Direction.Up: console.log('Moving up'); break; case Direction.Down: console.log('Moving down'); break; case Direction.Left: console.log('Moving left'); break; case Direction.Right: console.log('Moving right'); break; default: break; }}move(Direction.Up); // 打印 "Moving up"

        在这个例子中,我们定义了一个 Direction 枚举类型,包含了 Up、Down、Left 和 Right 四个元素。然后我们定义了一个 move 函数,接受一个 Direction 类型的参数,根据参数不同输出不同的消息。 当我们调用 move(Direction.Up) 时,会输出 Moving up,因为此时传递的参数是枚举类型 Direction 中的 Up 元素。如果传递的参数不是 Direction 类型中的任何一个元素,那么在 switch 语句的 default 分支中不会有任何输出。

二、自定义枚举值

        您可以通过自定义枚举值来覆盖默认的自动递增行为。例如:

enum Direction { Up = 1, Down, Left, Right}

        在这个例子中,Direction.Up的值为1,而其余的常量的值分别为2、3和4。

三、访问枚举值

        要访问枚举值,只需使用点表示法即可。例如:

console.log(Direction.Up); // 输出1console.log(Direction.Down); // 输出2四、反向映射

        TypeScript枚举还提供了反向映射功能,允许您通过枚举值获取其对应的常量名称。例如:

console.log(Direction[1]); // 输出Upconsole.log(Direction[2]); // 输出Down五、const枚举

        TypeScript还支持const枚举,这种类型的枚举在编译时被删除并内联到引用它们的地方。这可以提高性能和减少生成的代码大小。例如:

const enum Direction { Up, Down, Left, Right}console.log(Direction.Up); // 直接输出0,没有额外的代码生成六、常数枚举表达式 

        常数枚举表达式是指可以在编译时求值的表达式。这些表达式包括数字字面量、其他常数枚举表达式以及一些算术运算符。使用常数枚举表达式可以提高性能并减少生成的代码大小。例如:

enum E { A = 1 << 0, B = 1 << 1, C = A | B}

        在这个例子中,常量E.C的值在编译时计算为3(即1 | 2)。

七、外部枚举

        外部枚举使用declare关键字定义,文档描述:外部枚举用来描述已经存在的枚举类型的形状,意思就是说外部枚举用来描述当前环境中存在的枚举对象。外部枚举和普通枚举的一个区别就是,在外部枚举里面没有初始化的枚举成员会当成一个计算值,而在普通枚举里面则是一个常量。

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

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

        总之,TypeScript中的枚举类型是一种包含有限数量的命名常量的数据类型,在编译后会被转换为相应的JavaScript代码。枚举类型可以帮助我们定义一组具有意义的常量,可以通过名称或值调用这些常量,提高代码的可读性和可维护性。在TypeScript中,枚举类型有两种定义方式:数字枚举和字符串枚举。数字枚举使用数字作为枚举值,字符串枚举使用字符串作为枚举值。枚举类型还支持反向映射、枚举成员类型、枚举合并等高级特性。

本文链接地址:https://www.jiuchutong.com/zhishi/300529.html 转载请保留说明!

上一篇:IndexError: invalid index of a 0-dim tensor. Use `tensor.item()` in Python

下一篇:热闻丨ChatGPT会替代你我吗?让它写了封情书后,我得到答案

  • 企业怎样通过微博推广转化为用户的购买行为(企业怎样通过微信转账)

    企业怎样通过微博推广转化为用户的购买行为(企业怎样通过微信转账)

  • 小米门锁如何添加NFC设备(小米门锁如何添加苹果NFC)

    小米门锁如何添加NFC设备(小米门锁如何添加苹果NFC)

  • 企业微信收藏怎么找不到了(企业微信收藏怎么转发到微信)

    企业微信收藏怎么找不到了(企业微信收藏怎么转发到微信)

  • 荣耀x10max有几个卡槽(荣耀x10max有几个扬声器)

    荣耀x10max有几个卡槽(荣耀x10max有几个扬声器)

  • 苹果edge什么意思(iphone显示edge是手机问题吗)

    苹果edge什么意思(iphone显示edge是手机问题吗)

  • qq名字红色什么意思(qq名字红色的)

    qq名字红色什么意思(qq名字红色的)

  • 收藏店铺就是关注吗(收藏店铺什么意思)

    收藏店铺就是关注吗(收藏店铺什么意思)

  • 10087网络错误是什么意思(网络错误1008是什么意思)

    10087网络错误是什么意思(网络错误1008是什么意思)

  • 因为电池无法提供必须的峰值功率导致此iPhone意外关机(因为电池无法提供)

    因为电池无法提供必须的峰值功率导致此iPhone意外关机(因为电池无法提供)

  • 一加7pro防不防水(一加七pro防水防尘吗)

    一加7pro防不防水(一加七pro防水防尘吗)

  • 拉黑了怎么才能联系对方(拉黑了怎么才能解除)

    拉黑了怎么才能联系对方(拉黑了怎么才能解除)

  • word形式是什么意思(word的形式)

    word形式是什么意思(word的形式)

  • ip地址是电脑的还是网络的(如何改自己的ip地址)

    ip地址是电脑的还是网络的(如何改自己的ip地址)

  • vivox30后壳是什么材质(vivox30手机后盖都是什么材质的)

    vivox30后壳是什么材质(vivox30手机后盖都是什么材质的)

  • 华为手环睡眠监测原理(华为手环睡眠监测准确么)

    华为手环睡眠监测原理(华为手环睡眠监测准确么)

  • 什么是h5页面制作(h5页面制作的技巧和规范介绍)

    什么是h5页面制作(h5页面制作的技巧和规范介绍)

  • 电脑过地铁安检有影响吗(电脑过地铁安检需要拿出来吗)

    电脑过地铁安检有影响吗(电脑过地铁安检需要拿出来吗)

  • 快手怎么可以视频连麦(快手怎么可以视频连接)

    快手怎么可以视频连麦(快手怎么可以视频连接)

  • 怎么改兼容模式(excel怎么改兼容模式)

    怎么改兼容模式(excel怎么改兼容模式)

  • oppoa5与a9的区别(oppoa55和a9的区别)

    oppoa5与a9的区别(oppoa55和a9的区别)

  • 爱奇艺如何查看分成信息(爱奇艺如何查看登录设备)

    爱奇艺如何查看分成信息(爱奇艺如何查看登录设备)

  • 小米9怎么开机(小米9怎么开机按哪个键)

    小米9怎么开机(小米9怎么开机按哪个键)

  • etc哪里可以充值(哪里能etc充值)

    etc哪里可以充值(哪里能etc充值)

  • 苹果la是什么版本(iphonella是什么版本)

    苹果la是什么版本(iphonella是什么版本)

  • 如何从Windows11回滚到Windows10?回滚后Win11自动安装解决办法(win11怎么回到10)

    如何从Windows11回滚到Windows10?回滚后Win11自动安装解决办法(win11怎么回到10)

  • 脑电EEG代码开源分享 【4.特征提取-时频域篇】(egi脑电数据处理)

    脑电EEG代码开源分享 【4.特征提取-时频域篇】(egi脑电数据处理)

  • 政府补助利得要交企业所得税吗怎么算
  • 个体工商户核定征收
  • 向个人提供居住证明
  • 关税完税价格是到岸价吗
  • 应付职工薪酬在资产负债表怎么填
  • 分公司税务登记流程视频
  • 行政单位利息收入是非税收入吗
  • 已报废的固定资产
  • 出租设备应计入什么科目
  • 竞价服务费放在哪个会计科目?
  • 未认缴出资的股东退股
  • 未计提坏账准备的会计分录
  • 账本印花税如何申报缴纳
  • 详解劳务报酬个人所得税应该怎么计算?
  • 个人投资收益要交所得税吗
  • 金税三期房产税更正申报怎么弄
  • 高管怎么样
  • 年底结账税金
  • 背书出去的票据信息在哪里查询
  • 小规模减免附加税会计分录怎么做
  • 劳务合同如何缴纳社保
  • 鸿蒙系统怎么看运行程序
  • windows 临时文件夹
  • 增值税出口退税为什么不属于政府补助
  • 企业发行股票的溢价收入应计入
  • 怎么登明细分类账
  • ajax实现分页
  • 华硕自带win10系统
  • 建筑企业安装水电过程中很难发现的潜在问题
  • vue系列教程
  • 牛客前端刷题怎么样
  • unplugin-auto-import github
  • pgrep命令作用及含义
  • 出口退税逾期申报,需申报出口货物收汇情况表
  • 上传到织梦的网站没有图片
  • 公司的归属权
  • 会计人员报销差旅费应该给谁审核呢
  • 小规模公司卖车怎么开票
  • 网上免费学电脑
  • mysql版本5.5.x升级到5.6.x步骤分享
  • 银行转账支付中是什么状态
  • 公司性质和单位性质的区别
  • sql语句批量更新
  • asp.net mvc图片上传
  • sql2012附加数据库方法
  • 劳动法辞退员工补偿标准2023
  • 发票已经认证后怎么撤销
  • 企业所得税期初余额什么意思
  • 筹建期间的开办费属于资产吗
  • 买一赠一是什么促销方式
  • 定期定额自行申报表
  • 定期存款账务怎么处理
  • 扶贫小额信贷分贷统还违规吗
  • 复利现值和复利终值互为逆运算对吗
  • 增值税欠税及滞纳金计算
  • 未分配利润属于总账科目吗
  • 财产裁定书
  • 固定资产原值的构成内容是
  • 长期待摊费用什么时候结束摊销
  • centos rpc
  • mysql5.7.27安装
  • wind2003
  • linux服务端
  • 将哪一linux文件系统引入
  • vssvc.exe
  • windows8安装程序
  • sointgr.exe - sointgr是什么进程 有什么用
  • Androidannotation使用之@Rest获取资源及用户登录验证(一)
  • nodejs开发gui
  • 批处理实现电脑登陆二次验证
  • 变量js
  • [置顶]津鱼.我爱你
  • jquery动态添加的元素怎么添加事件
  • javax.net.ssl.SSLException: hostname in certificate didn't match:
  • jQuery dataTables与jQuery UI 对话框dialog的使用教程
  • 加强税务系统党委全面监督工作
  • 深圳国家税务局赵雨婷处长
  • 房地产预缴土增值税
  • 12月份买的车10月打电话让我去保养
  • 业务竞赛经验分享
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设