【发布时间】:2025-12-21 17:45:11
【问题描述】:
我有一个枚举需要保留为数字枚举 - 所以我无法将其更改为字符串。
我想在不进行长时间切换的情况下将字符串转换为正确的枚举 :-)
例如,这是我的枚举
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
【问题讨论】:
-
您是否尝试使用字符串作为索引?像这样
LogLevel[str]
标签: typescript enums casting