TS支持数字枚举和基于字符串的枚举

更新日期: 2021-11-10阅读: 1.2k标签: 枚举

前言

其实,之前在讲TS的类型的时候,我们提到过枚举。如果不太明白概念,你可以把枚举简单理解为列举

之前例子用到了enum

enum Direction {
  NORTH,
  SOUTH,
  EAST,
  WEST,
}
let dir: Direction = Direction.NORTH;

枚举的好处是,我们可以定义一些带名字的常量,而且可以清晰地表达意图或创建一组有区别的用例

TS支持数字的和基于字符串的枚举,首先来看数字枚举


数字枚举

举例:

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

这就是一个数字枚举,我们为Up初始化为1,剩下的其他会自动从1开始增长。

当然也可以不用初始化,如下:

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

这样默认就是从0开始自增

那如何使用枚举呢?

答案是,通过枚举的属性来访问枚举成员,和枚举的名字来访问枚举类型。比如我们在说类型时举的例子:

enum Direction {
  NORTH,
  SOUTH,
  EAST,
  WEST,
}
let dir: Direction = Direction.NORTH;

字符串枚举

在一个字符串枚举里,每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。例如:

enum Direction {
    Up = "UP",
    Down = "DOWN",
    Left = "LEFT",
    Right = "RIGHT",
}

字符串枚举可以很好的序列化,原因是字符串枚举没有自增长的行为。如果你正在调试并且必须要读一个数字枚举的运行时的值,这个值通常是很难读的,它并不能表达有用的信息,而字符串枚举允许你提供一个运行时有意义的并且可读的值,独立于枚举成员的名字

你可能会想字符串和数字能否混合,需要注意的是,枚举确实可以混合字符串和数字成员,但是一般不建议这样做!

作者:LBJ
链接:https://juejin.cn/post/7028922715562049550

链接: https://fly63.com/article/detial/10784

用for...in 和Object.keys()枚举对象属性的差异

用for...in循环和Object.keys方法都可以获取对象的属性,那么它们有什么区别呢?getOwnPropertyNames方法输出的结果中还包含了对象的不可枚举属性,可以通过Object.propertyIsEnumerable来判断属性是否可枚举从而对结果进行过滤

PHP实现枚举

在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。

javascript枚举算法

题目:在1,2,3,4,5 五个数中,我们随机选取 3个数。问有多少种取法?并且把每种取出数的方法列举出来。乍看这道题,其实感觉没什么难度。三个for循环不就解决问题了。

TypeScript 枚举

数字类型枚举:常规枚举的值都是数字类型,因此被称为数字类型枚举;改变与数字枚举关联的数字:默认情况下,第一个枚举值是 0,后续的值会递增。

TypeScript-枚举

枚举是对JavaScript标准数据类型集的扩充,常被用来限定在一定范围内取值的场景。在TypeScript中支持数字和字符串的枚举。我们可以用enum来实现。字符串枚举中没有自增的特性,我们在初始化的时候必须给每一个成员都设字符串。

JS模拟实现枚举

在当前的javascript中,并没有枚举这个概念,在某些场景中使用枚举更能保证数据的正确性,减少数据校验过程,下面就介绍一下javascript如何模拟实现枚举效果。

TypeScript 枚举类型用法示例

使用枚举类型可以允许我们定义一些带名字的常量,也可以清晰地表达意图或创建一组有区别的用例。在 TypeScript 中,支持数字的和基于字符串的枚举。

TypeScript 枚举指南

枚举是受 TypeScript 支持的数据类型。枚举允许您定义一组命名常量。使用它们可以更轻松地记录意图或创建一组不同的案例。枚举大多数用于面向对象的编程语言(如 Java 和 C#)中

用 JavaScript 编写枚举的最有效方法

假设有这样一个场景,我们需要统计员工的技术栈,目前我们需要标记的技术有 CSS、JavaScript、HTML、WebGL。然后我可以这样写枚举:

前端枚举enum的应用(Element)封装

枚举 Enum是在众多语言中都有的一种数据类型,JavaScript中还没有(TypeScript有)。用来表示一些特定类别的常量数据,如性别、学历、方向、账户状态等,项目开发中是很常用的。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!