ts 通过字符串值 获取枚举
时间: 2023-08-18 14:09:58 浏览: 354
在 TypeScript 中,可以通过字符串值获取枚举值的方法如下:
```typescript
enum MyEnum {
Foo = "foo",
Bar = "bar",
Baz = "baz"
}
function getEnumValue(str: string): MyEnum | undefined {
for (const key in MyEnum) {
if (MyEnum[key] === str) {
return MyEnum[key] as MyEnum;
}
}
return undefined;
}
const val1 = getEnumValue("foo"); // MyEnum.Foo
const val2 = getEnumValue("unknown"); // undefined
```
在这个例子中,我们定义了一个名为 `MyEnum` 的枚举类型,它有三个值:`Foo`、`Bar` 和 `Baz`。然后,我们定义了一个函数 `getEnumValue`,它接受一个字符串参数 `str`,并在枚举类型中查找匹配的值。如果找到了匹配的值,则返回该值;否则返回 `undefined`。最后,我们使用 `getEnumValue` 函数获取了两个枚举值,分别是 `MyEnum.Foo` 和 `undefined`。
相关问题
TS enum 枚举取key值
在TypeScript中,你可以创建一个名为`ts-key-enum`的字符串枚举来代替硬编码的字符串键。安装这个库后,你可以通过枚举名称来获取键值。以下是如何使用它的一个示例:
```typescript
// 引入并使用ts-key-enum库
import { ENUM_TYPE } from 'ts-key-enum';
// 在事件处理器中获取枚举对应的键值
onKeyPress = (ev: KeyboardEvent) => {
const keyEnumValue: IKey = ENUM_TYPE[ev.key as keyof typeof ENUM_TYPE]; // 使用ev.key作为枚举的键
// ... 执行后续操作,如打印或判断keyEnumValue
};
// 示例枚举
export enum ENUM_TYPE {
ALL = 'ALL',
SOME = 'SOME',
LITTLE = 'LITTLE'
}
```
在这个例子中,`IKey`是你枚举的类型别名,`ev.key`作为枚举类型的关键字,允许你在编译期间得到更安全的键值。这样可以避免拼写错误或其他可能的问题。
ts枚举类型enum用法
在TypeScript中,枚举类型(enum)是一种帮助开发者定义一组命名的常量集合的数据类型。枚举类型可以更清晰地描述代码中的值,并且可以提高代码的可读性和可维护性。
枚举类型的基本用法是通过关键字enum来定义一个枚举,然后在大括号内列出枚举的成员。每个成员都有一个名称和对应的值,值可以是数字或字符串。例如:
```typescript
enum Color {
Red = 1,
Green = 2,
Blue = 3,
}
```
上面的例子定义了一个枚举类型Color,它包含了三个成员Red、Green和Blue,分别对应的值为1、2和3。
枚举类型可以通过成员的名称或值来访问。例如:
```typescript
let c: Color = Color.Green; // 通过成员的名称来赋值
let colorName: string = Color[2]; // 通过值来获取成员的名称,这个例子返回"Green"
```
在实际的开发中,枚举类型经常用于表示一组相关的常量。例如表示颜色、方向、状态等。使用枚举类型可以让代码更具有可读性,因为使用枚举可以让开发者清晰地知道变量的取值范围。
需要注意的是,枚举类型的值是可以自动推断的,也可以手动指定。而且枚举类型在生成JavaScript代码时,会被转换成对象,在一些情况下这可能会导致额外的开销。因此,需要根据实际情况来决定是否使用枚举类型。
阅读全文