首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在typescript中获取枚举成员索引(而不是成员名称)?

在TypeScript中,可以使用enum关键字定义枚举类型。枚举成员默认情况下是按照索引递增的整数值进行赋值的,从0开始。如果需要获取枚举成员的索引(而不是成员名称),可以使用以下方法:

代码语言:txt
复制
enum MyEnum {
  A,
  B,
  C
}

const indexA = MyEnum.A; // 0
const indexB = MyEnum.B; // 1
const indexC = MyEnum.C; // 2

在上述示例中,MyEnum定义了三个枚举成员:A、B和C。通过直接使用枚举成员名称,可以获取其对应的索引值。

如果需要根据索引获取枚举成员名称,可以使用以下方法:

代码语言:txt
复制
enum MyEnum {
  A,
  B,
  C
}

const index = 1;
const memberName = MyEnum[index]; // "B"

在上述示例中,index变量存储了要获取的枚举成员的索引值,通过将其作为索引访问MyEnum,可以获取对应的枚举成员名称。

需要注意的是,枚举成员索引是从0开始的,如果需要自定义索引值,可以手动为枚举成员赋值:

代码语言:txt
复制
enum MyEnum {
  A = 5,
  B = 10,
  C = 15
}

const indexA = MyEnum.A; // 5
const indexB = MyEnum.B; // 10
const indexC = MyEnum.C; // 15

以上是在TypeScript中获取枚举成员索引的方法。对于更多关于TypeScript的信息,你可以参考腾讯云的TypeScript产品介绍页面:TypeScript - 腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )

枚举类常用用法 II . 枚举类初始化 III. 枚举类匿名类 IV . 枚举类实现接口 V . 获取枚举常量名称和位置索引 VI . 获取枚举常量的成员变量 VII ....枚举类匿名类 ---- 枚举类抽象方法 : 枚举可以定义枚举常量的抽象方法 ; ① 实现方式 : 每个 枚举常量 必须在 匿名类 实现此处定义的抽象方法 ; ② 定义位置 : 枚举常量的抽象方法要定义在枚举类最后...获取枚举常量名称和位置索引 ---- 获取枚举常量名称和位置索引 : ① 获取枚举名称 : 枚举类.常量名称.name 可以获取枚举常量的名称 ; ( 打印 枚举类.常量名称 也可以将枚举常量名称打印出来...) ② 获取枚举索引 : 枚举类.常量名称.ordinal 可以获取枚举常量的位置索引 , 从 0 开始计数 ; //打印枚举类 , 直接打印其名称 //LEFT println(Direction.LEFT...获取枚举常量的成员变量 ---- 在枚举定义时 , 可以为其制定成员变量 , enum class 枚举名称 : ( var 成员名 : 成员类型 ) , 枚举常量定义时 , 可以为其初始化值 枚举常量名称

1.6K20

Web前端面试敲重点知识,14个TypeScript核心基础面试题和答案

6、TypeScript 声明变量有哪些不同的关键字? 7、如何书写带有类型注释的函数 ? 8、如何在 TypeScript 创建对象 ? 9、如何在 TypeScript 中指定可选属性 ?...10、说说枚举TypeScript 是如何工作的 ? 11、什么是参数解构 ?...它们类似于数组,有时也称为关联数组 但是,数组使用数字来索引值,而对象允许使用任何其他类型作为键 image.png 9、如何在 TypeScript 中指定可选属性 ? 通过添加 ?...对象类型可以具有零个或多个可选属性,在属性名称之后 image.png 10、说说枚举TypeScript 是如何工作的 ?...枚举允许我们创建命名常量,这是一种为数字常量值赋予更友好名称的简单方法 枚举由关键字 enum 定义,后跟其名称成员。 image.png 11、什么是参数解构 ?

11.4K10

1.8W字|了不起的 TypeScript 入门教程(第二版)

在一个字符串枚举里,每个成员都必须用字符串字面量,或另外一个字符串枚举成员进行初始化。...,我们可以知道数字枚举除了支持 从成员名称成员值 的普通映射之外,它还支持 从成员值到成员名称 的反向映射: enum Direction { NORTH, SOUTH, EAST,...数字枚举如果没有显式设置值时,则会使用默认规则进行初始化。 3.常量枚举 除了数字枚举和字符串枚举之外,还有一种特殊的枚举 —— 常量枚举。...此外,接口和类型别名不是互斥的。接口可以扩展类型别名,反过来是不行的。...1.typeof 在 TypeScript ,typeof 操作符可以用来获取一个变量声明或对象的类型。

10.1K51

5000 多字,让你一文掌握 TS 枚举

一、基础知识 在 JavaScript 布尔类型的变量含有有限范围的值,即true和false。而在 TypeScript 中使用枚举,你也可以自定义相似的类型。...如果枚举某个成员的值使用显式方式赋值,但后续成员未显示赋值, TypeScript 会基于当前成员的值加 1 作为后续成员的值,比如以下 Enum 枚举成员 C: enum Enum { A,...,因为它们与属性名称相关:Symbol.asyncIterator; TypeScript 手册使用以大写字母开头的驼峰式名称。...异构枚举由于其应用较少很少使用。 目前 TypeScript 只支持将数字和字符串作为枚举成员值。不允许使用其他值,比如 symbols。...2.2 const 枚举成员 如果可以在编译时计算枚举成员的值,则该枚举成员是常量。因此,我们可以隐式指定其值(即,让 TypeScript 为我们指定它的值)。

3.9K10

一文让你彻底掌握 TS 枚举

一、基础知识 在 JavaScript 布尔类型的变量含有有限范围的值,即 true 和 false。而在 TypeScript 中使用枚举,你也可以自定义相似的类型。...如果枚举某个成员的值使用显式方式赋值,但后续成员未显示赋值, TypeScript 会基于当前成员的值加 1 作为后续成员的值,比如以下 Enum 枚举成员 C: enum Enum { A,...,因为它们与属性名称相关: Symbol.asyncIterator; TypeScript 手册使用以大写字母开头的驼峰式名称。...异构枚举由于其应用较少很少使用。 目前 TypeScript 只支持将数字和字符串作为枚举成员值。不允许使用其他值,比如 symbols。...2.2 const 枚举成员 如果可以在编译时计算枚举成员的值,则该枚举成员是常量。因此,我们可以隐式指定其值(即,让 TypeScript 为我们指定它的值)。

4.4K20

4000字讲清 《深入理解TypeScript》一书 【基础篇】

,初始化第一个成员,以便生成的代码不是先前定义的枚举类型值。...Foo: CallMeWithNewToGetString; const bar = new Foo(); // bar 被推断为 string 类型 类型断言: 推荐只使用统一的as foo 语法,不是...如果在你的参数里,不止拥有一个泛型,你应该使用一个更语义化名称 TKey 和 TValue (通常情况下,以 T 作为泛型的前缀,在其他语言 C++ 里,也被称为模板) 变体 对类型兼容性来说,变体是一个利于理解和重要的概念...索引签名 JavaScript 在一个对象类型的索引签名上会隐式调用 toString 方法,而在 TypeScript ,为防止初学者砸伤自己的脚(我总是看到 stackoverflow 上有很多...当你声明一个索引签名时,所有明确的成员都必须符合索引签名: // ok interface Foo { [key: string]: number; x: number; y: number

1.9K30

Typescript基础语法

还支持类的定义,如下为官方demo,通过class关键字定义类,类成员表示与接口一样,同时,可以为类设定constructor——构造函数,constructor的形参可以添加public修饰符,代表同时该形参同时表示一个...,protected代表保护,只有类内部及子类内部能够访问 readonly typescript的readonly代表修饰成员为只读,不可修改(类似java的final) 存取器 typesceipt...中提供了默认存取器(java的读屏障、写屏障),通过存取器,可以方便的编写要在成员被访问、修改时的行为,比如 class A{ _name : string;//需要把成员名修改为别的名称,防止调用...如下代码,则在B可以通过A.a去访问他的接口a因为a将他export出去,A无法访问接口b,因为他们也export namespace A{ export interface a{}; }...与java类似,使用enum关键字创建枚举,默认枚举值为整数,不指定整数值默认从0开始, enum Direction { Up = 1, Down, Left, Right

1.5K20

TS 进阶 - 类型基础

TypeScript ,要引用已创建的 unique symbol 类型,需要使用类型查询操作符 typeof, typeof sym1。...,枚举是双向映射的,可以从枚举成员映射到枚举值,也可以从枚举值映射到枚举成员。...,同时,其编译产物并不会存在一个额外的辅助对象,对枚举成员的访问会被直接内联替换为枚举的值。...# void 类型 在 TypeScript ,一个没有返回值(即没有调用 return 语句)的函数,其返回值类型应该被标记为 void 不是 undefined,尽管它的实际值就是 undefined...TypeScript 的重载更像伪重载,只有一个具体的实现,其重载体现在方法调用的签名上不是具体实现细节上。在像 C++ 等语言中,重载体现在多个名称一样,但是入参不同的函数实现上。

1.7K50

TypeScript魔法堂:枚举的超实用手册

前言 也许前端的同学会问JavaScript从诞生至今都没有枚举类型,我们不是都活得挺好的吗?为什么TypeScript需要引入枚举类型呢?...所以我还是建议大家运用空杯心理,重头理解TypeScript枚举类型,将过去的知识作为助燃剂,不是围栏更适宜。...(注意:这里是反向映射,不是通过值转换为枚举成员) 字符串枚举类型 enum Color { Red = 'Red', Green = 'Green', } 特性为: 1.1....必须为枚举成员设置初始化器; 1.2. 初始化器不支持自动增长; 1.3. 不支持反向映射。 计算和常量成员其实就是上述两种枚举类型初始化器的细分特性罢了。...于是在.d.ts文件编写如下外部枚举类型声明 declare enum DialogModes { NO, YES, ALL, } 总结 对于日常开发我们绕不过枚举类型,TypeScript

1.2K20

typeScript学习总结(一)

它有三个特性: 类型检查:在编译代码时,就进行严格的类型检查 语言扩展:除了js语言的最新和未来提案特性,还包括其他语言的特性,接口、抽象类 工具属性:是指ts不是一门独立的语言,而是像一个工具库 语言类型简介...枚举类型在js是没有的,是一组具有名称的常量集合。...将程序存在的硬编码或者将来可能改变的常量抽取出来形成一个枚举类型,方便管理。...这类成员需满足:未赋初值、赋值为数字或字符串、赋值为已有的成员、普通的表达式 computed member,在执行时才被计算,含字符串的枚举不可有此成员。这类成员通常是:arr.length......将枚举作为一种类型-自定义枚举类型 // 枚举成员未赋初始值 enum E {a,b} let a: E = 1 let b: E.b = 2 // 枚举成员赋初始值 enum F {a=1, b='str

71340

TypeScript超详细入门教程(上)

这里要注意,搜索的是关键字,不是把你的报错信息完整输进去,这样基本很难搜到。你应该挑选出错误信息中比较具有代表性的单词进行搜索,因为这和搜索引擎不一样,issues 提供的搜索还不是很强大。...,那这个时候你可能会看到如下这种错误提示: 枚举声明只能与命名空间或其他枚举声明合并 正如你看到的,这里这个错误,是因为你在同一个文件不同地方、或者不同文件,定义了相同名称的值,而由于TypeScript...字符串枚举 TypeScript2.4 版本新增了字符串枚举,字符串枚举值要求每个字段的值都必须是字符串字面量,或者是该枚举另一个字符串枚举成员,先来看个简单例子: enum Message...,因为字符串枚举不能使用常量或者计算值,所以也不能使用其他枚举成员。...小结 本小节我们学习了两种基本的枚举:数字枚举和字符串枚举,它俩的最主要的区别就是枚举成员值的类型了,数字枚举成员的值必须都是数值类型,字符串枚举成员的值必须都是字符串。

4.1K41

深入浅出 TypeScript

TypeScript 的类成员都默认为 public, 被此限定符修饰的成员是「可以被外部访问」。 当成员被设置为 private之后, 被此限定符修饰的成员是「只可以被类的内部访问」。...泛型类型兼容性 泛型本身就是不确定的类型,它的表现根据「是否被成员使用不同」。...JavaScript的 Class其实也是一个语法糖。 高级类型 索引类型 先来了解两个类型操作符:「索引类型查询操作符」和「索引访问操作符」。...keyof,即索引类型查询操作符,我们可以用 keyof作用于泛型 T 上来获取泛型 T 上的所有 public属性名构成联合类型。...这里列出的路径必须是指定文件,不是某个文件夹,而且不能使用* ?

2.8K30

TypeScript进阶(一)深入理解类和接口

在本文中,我们将深入探讨 TypeScript 类和接口的各种特性,包括类的继承、抽象类、静态成员、接口、索引器以及 this 指向约束。...注意,在子类必须实现父类的所有抽象方法。 静态成员 静态成员是属于类本身不是实例的属性和方法。我们可以使用 static 关键字来定义静态成员。 静态成员属于类本身不是实例。...通过使用 static 关键字来定义静态成员。 静态成员在整个应用程序只有一个副本,并且可以通过类名直接访问,不需要创建类的实例。 静态成员通常用于存储和共享全局数据,或者提供一些全局的功能。...我们可以直接通过类名访问这些静态成员不需要创建类的实例。 接口 -- 接口是一种用于描述对象的形状的类型。在 TypeScript ,我们使用 interface 关键字来定义接口。...TypeScript基础(一)基本类型与类型运算 TypeScript基础(二)扩展类型-枚举及其位运算 TypeScript基础(三)扩展类型-接口和类型兼容性 TypeScript基础(四)扩展类型

28210

TypeScript 枚举类型

使用枚举我们可以定义一些带名字的常量。 使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript支持数字的和基于字符串的枚举。...一、数字枚举TypeScript 可以通过 enum 关键字来定义枚举,比如: enum RequestMethod { Get, Post, Put, Delete, Options...利用这个特性,在确保不出现冲突的提前下,我们还可以合并在不同文件定义的相同名称枚举或分开定义枚举。...当一个表达式满足下面条件之一时,它就是一个常量枚举表达式: 一个枚举表达式字面量(主要是字符串字面量或数字字面量); 一个对之前定义的常量枚举成员的引用(可以是在不同的枚举类型定义的); 带括号的常量枚举表达式...版本,引入了一个众人期待的特性 —— 字符串枚举

1.4K10

TS 从 0 到 1 - 泛型

在 C# 和 Java ,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。这样用户就可以以自己的数据类型来使用组件。...设计泛型的关键目的是在成员之间提供有意义的约束,这些成员可以是:类的实例成员、类的方法、函数参数、函数返回值。 泛型是允许同一个函数接受不同类型参数的一种模板。...T 代表 Type,在定义泛型时通常用作第一个类型变量名称。实际上 T 可以用任何有效名称代替。...K(Key):表示对象的键类型 V(Value):表示对象的值类型 E(Element):表示元素类型 不只能定义一个类型变量,可以引入希望定义的任何数量的类型变量。...# in in 用来遍历枚举类型 type Keys = "a" | "b" | "c"; type Obj = { [p in Keys]: any; }; // { a: any, b: any

38310
领券