当前位置:首页 » 《我的小黑屋》 » 正文

【TypeScript入门】TypeScript入门篇——枚举(enum)

6 人参与  2024年03月29日 15:31  分类 : 《我的小黑屋》  评论

点击全文阅读


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

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

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

目录

一、枚举的基本语法

二、自定义枚举值

三、访问枚举值

四、反向映射

五、const枚举

六、常数枚举表达式 

七、外部枚举


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

一、枚举的基本语法

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

enum Direction {  Up,  Down,  Left,  Right}

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

案例实现:

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中,枚举类型有两种定义方式:数字枚举和字符串枚举。数字枚举使用数字作为枚举值,字符串枚举使用字符串作为枚举值。枚举类型还支持反向映射、枚举成员类型、枚举合并等高级特性。


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/87712.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 进错房,嫁给八零最牛特种兵已完结(林晚夏江肆年)抖音热文_《进错房,嫁给八零最牛特种兵已完结》最新章节免费在线阅读 -
  • 重生后选魔族,天族哭着求我当王全章节(月沁雪任意)全文免费阅读无弹窗大结局_(重生后选魔族,天族哭着求我当王全章节)重生后选魔族,天族哭着求我当王全章节免费阅读全文最新章节列表_笔趣阁(重生后选魔族,天族哭着求我当王全章节) -
  • 捡回摄政王后,她在皇室作威作福完结版小说(景飞鸢赵灵杰)全文免费阅读无弹窗大结局_(捡回摄政王后,她在皇室作威作福完结版免费阅读全文大结局)最新章节列表_笔趣阁(捡回摄政王后,她在皇室作威作福完结版) -
  • 千金难泣(立轩苏子骞翠竹吴进)全本免费在线阅读_千金难泣最新章节在线阅读(立轩苏子骞翠竹吴进)
  • 《沈云阶傅宴辞》(沈云阶傅宴辞》已完结完整版全集大结局小说)全文阅读笔趣阁
  • 《沈凌峰沈国华》已完结小说全文阅读笔趣阁《沈凌峰沈国华》
  • 《傅嫤韩恬魏郯程茂》已完结(傅嫤韩恬魏郯程茂)热门小说全目录完整版)全文阅读笔趣阁
  • 八零俏军医错嫁糙汉军官:番外+全文+后续(贺昭朗孟翩然)完本小说免费_全本免费小说八零俏军医错嫁糙汉军官:番外+全文+后续最新小说全文阅读(贺昭朗孟翩然)
  • 失去千千万万遍在线阅读(阮相宜陆凛言)全文免费阅读无弹窗大结局_(失去千千万万遍在线阅读)失去千千万万遍在线阅读免费阅读全文最新章节列表_笔趣阁(失去千千万万遍在线阅读) -
  • 脱离世界后,妻子疯了火爆小说小说(沈夕颜林程言)全文免费阅读无弹窗大结局_(脱离世界后,妻子疯了火爆小说免费阅读全文大结局)最新章节列表_笔趣阁(脱离世界后,妻子疯了火爆小说) -
  • 跨年发生踩踏,男友为救白月光丢下我(温林初宝宝)免费阅读 -
  • 都重生了,还不离婚等啥呢宋招弟霍文铮小说在线章节免费阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1