You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么TypeScript中无法通过反向映射获取字符串枚举的取值?

问题原因

TypeScript 仅为数字枚举生成反向映射,字符串枚举没有反向映射能力,你使用NotificationType[NotificationType.EventUpdate]的写法不符合字符串枚举的语法规则,因此会触发报错。

正确解决方案

字符串枚举的成员本身就是你定义的字符串字面量,不需要额外做映射转换,直接取值即可:

notifictionTypeToString(type: NotificationType) : string {
    // 直接返回入参本身即可,对应的值就是你定义的"General Info"/"Event Update"字符串
    return type;
}

如果你有特殊场景需要获取枚举的键名(即GeneralInfo/EventUpdate这类键的字符串),可以用遍历枚举的方式实现:

notifictionTypeToEnumKey(type: NotificationType) : string | undefined {
    return Object.entries(NotificationType).find(([key, value]) => value === type)?.[0];
}

内容的提问来源于stack exchange,提问作者Agung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 07:57:01