【问题标题】:How to map a string to known enum with string value in Typescript? [closed]如何在Typescript中将字符串映射到具有字符串值的已知枚举? [关闭]
【发布时间】:2020-01-19 06:06:23
【问题描述】:

如果我有一个字符串值,例如,来自服务器。我用字符串值定义了一个枚举类型。如何在打字稿中将字符串值转换为枚举类型?

export enum ToolType {
  ORA= 'orange', ST= 'stone' , DP= 'dupe'
}

const stringFromServer='orange';
// need TO transfer it  to ToolType.ORA

【问题讨论】:

标签: typescript enums


【解决方案1】:

如果你想得到 ORA 如果 stringFromServer='orange' 或 ST 如果 stringFromServer = 'stone'

那你可以试试这个:

使用 JavaScript 的过滤功能并检查您的条件。匹配时返回 true,否则返回 false。它会给你一个包含你想要的数据的数组

var value = 'orange';
let enums = Object.keys(ToolType).filter(x => 
{
  if(ToolType[x] === value){    
    return true;    
  }
  return false;
});

enums 将是一个类似的数组

enums[0] = ORA

工作链接:

https://stackblitz.com/edit/typescript-byg8ct

【讨论】:

    【解决方案2】:

    当服务器发送一个枚举时,它实际上发送一个代表该枚举而不是其类型的数字。

    你可以这样做:

    type ToolType = 'Orange' | 'Stone' | 'Dupe';

    const stringFromServer: ToolType = 'Orange';

    您需要客户端中的某个人知道您的枚举表示的数字是多少。

    您可以尝试修改您的服务器,让他向您发送枚举的字符串名称并执行我上面编写的代码。

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多