我有一个枚举需要保留为数字枚举-所以我不能将其更改为字符串。
我想在不做长时间切换的情况下将字符串转换为正确的枚举:-)
例如,这是我的枚举
export enum LogLevel {
TRACE = 0,
DEBUG = 1,
INFO = 2,
LOG = 3,
WARN = 4,
ERROR = 5,
FATAL = 6,
OFF = 7
}
我得到了一个传递给我的字符串,可以说该字符串是“ WARN”,我需要一个等于
的变量LogLevel.WARN
在字符串和枚举字符串之间进行转换很容易,但是当我需要将枚举保留为数字枚举时,并不是那么容易。
有什么想法是最好的方法吗?
预先感谢
**编辑**
实际上是一个编译器错误,显示以下内容
使用字符串类型参数访问枚举时,TypeScript TS7015错误
这里有个解决方法
https://github.com/Microsoft/TypeScript/issues/17800
let s: string = "WARN"
console.log(LogLevel[s as keyof typeof LogLevel]) // 4
答案 0 :(得分:2)
枚举是available as a runtime construct,您可以使用字符串索引到枚举:
let s: string = "WARN";
console.log(LogLevel[s]); // 4