ts 通过字符串值 获取枚举
时间: 2023-08-18 16:09:58 浏览: 54
在 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 含字符串值成员的枚举中不允许使用计算值。
ts中的枚举是一种类型,它允许我们为一组相关的值定义一个命名集合。枚举可以包含字符串值成员,但是不允许在这种类型的枚举中使用计算值。
计算值是指在枚举成员中使用表达式或函数来计算值的情况,例如:
```
enum Enum {
A = "hello".length, // 错误,计算值不允许
B = 10 * 2 // 错误,计算值不允许
}
```
在上面的例子中,我们尝试在字符串值枚举的成员中使用计算值,但是这是不被允许的。字符串值枚举的成员必须直接指定字符串值,而不能使用任何计算。
然而,如果需要使用计算值来定义枚举成员,可以考虑使用数字枚举或常量枚举。数字枚举的成员可以使用表达式或函数来计算值,而常量枚举的成员在编译阶段被内联到代码中,因此也可以使用计算值。
总之,在使用含有字符串值成员的枚举时,要注意不允许使用计算值。如果需要使用计算值,可以考虑使用数字枚举或常量枚举来替代。
ts 替换字符串为_
以下是在TypeScript中替换字符串为_的例子:
```typescript
const str: string = 'hello world';
const replacedStr: string = str.replace(/./g, '_');
console.log(replacedStr); // 输出:_________
```
上述代码中,我们使用了字符串的replace()方法,将字符串中的所有字符都替换成了下划线。其中,正则表达式`/./g`表示匹配所有字符,`g`表示全局匹配。最后,我们将替换后的字符串输出到控制台。