当前位置: 首页 > 知识库问答 >
问题:

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

阴禄
2023-03-14

我有一个typescript中的枚举,它有20个字段。我有一个UI应用程序,用户可以将信息放在一些自由文本中(例如,让我们说用户喜欢的颜色)。我的要求是获取这些颜色信息并致电中层服务。midtier服务将Color定义为Enum,与UI枚举定义保持同步。我需要将用户输入文本转换为枚举(在前端),因为在构建过程中会引发编译问题。我没有找到执行转换的方法(例如,从用户输入字符串到特定枚举元素)。任何指针都会有帮助。

下面是示例代码

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

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

当做

共有1个答案

周越泽
2023-03-14

TypeScript 支持反向枚举映射。所以颜色[1] ==='绿色',颜色['绿色'] === 1

话虽如此,您的 UI 可能正在运行导出到 JS 的 TS,并且此枚举在值空间中不存在。如果这个假设是正确的,你最好将枚举导出到一个对象,以更普通js的方式进行映射。

 类似资料:
  • 问题内容: 说我有一个枚举 并且我想找到一个字符串的枚举值,例如它将是。这怎么可能呢? 是我需要的方法吗?如果是这样,我将如何使用它? 问题答案: 是的,会给你的。 请注意,该名称必须是精确匹配,包括大小写:与两抛出。 静态方法和是在编译时创建的,不会出现在源代码中。但是,它们确实出现在中。例如,显示两种方法。

  • 我找到了这个关于如何将字符串转换为打字稿枚举的好答案。在此基础上,我编写了这个函数 但是现在当我尝试使它通用时, 我在return语句中得到错误:< code >“T”只引用一个类型,但在这里被用作值。 我想使这个泛型,因为我有许多枚举需要根据它们的字符串值生成,并且我不想为每个枚举使用单独的方法。

  • 问题内容: 我在JavaScript中有一个字符串,例如“#box2”,我只想从中获得“ 2”。 尝试过: 它仍然在警报中返回#box2,我该如何使其正常工作? 它需要容纳末尾附加的任何长度的数字。 问题答案: 对于此特定示例, 在一般情况下: 由于这个答案由于某种原因而受到欢迎,因此有一个好处:正则表达式生成器。

  • 问题内容: 我定义了以下枚举 现在的印刷价值是 相反,我想打印枚举的值 要实现此功能可以做些什么? 问题答案: 您正在打印枚举 对象 。如果只想打印该属性,请使用该属性: 请参阅 对枚举成员及其属性 的 编程访问权限 部分 : 如果您有枚举成员并需要其名称或值: 如果只需要提供自定义字符串表示形式,则可以向枚举添加方法: 演示:

  • 问题内容: 我只想从字符串中获取数字。例如我有这样的事情 我只希望它打印出来 因此我可以将其乘以任何数字。 我试过了 我有 最好的方法是什么?我是菜鸟 问题答案: 您可以使用正则表达式: 要么

  • 问题内容: 即时通讯正在处理日期,并且我在从字符串中获取日期时遇到问题,我在这里简化了我的问题: 输出为:“ 25-05-2015”(可以),“ 2014年12月21日,上午12:00”(???) 问题答案: 那里的问题是为了。您必须使用。顺便说一句,不要忘记将日期格式设置的语言环境设置为“ en_US_POSIX” 。 如果您使用固定格式的日期,则应首先将日期格式器的语言环境设置为适合您的固定格