从打字稿中的字符串获取枚举

时间:2021-04-16 22:12:02

标签: javascript typescript enums

我在打字稿中有一个枚举,它有 20 多个字段。我有 UI 应用程序,用户可以在其中将信息放入一些自由文本中(例如,假设人们喜欢的颜色)。我的要求是获取此颜色信息并调用中间服务。中间层服务将 Color 定义为 Enum,它与 UI 枚举定义保持同步。我需要将用户输入文本转换为枚举(在前端),因为在构建过程中会抛出编译问题。我没有找到执行转换的方法(例如从用户输入字符串到特定的枚举元素)。任何指示都会有所帮助。

这是示例代码

       export enum Color {
          green='green',
          orange='orange',
          yellow = 'yellow'
...... 
and so on
       }

用户将输入设为绿色(这是一个字符串)。当我在中间层调用服务时,它需要一个枚举。

问候

1 个答案:

答案 0 :(得分:1)

TypeScript 支持 reverse enum mapping。所以 Color[1] === 'Green'Color['green'] === 1

话虽如此,您的 UI 可能正在运行导出到 JS 的 TS,而 value-space 中不存在此枚举。如果该假设是正确的,那么最好将枚举导出到要以更 vannilla-js 方式映射的对象