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

将任何值解析为枚举[重复]

公羊向荣
2023-03-14

在angular 12应用程序上,我有enum:

export enum Policy {
  Admin,
  Manager
} 

我尝试如下定义Policy类型的变量:

let policy: Policy = Policy[route.data.policy as string]; 

< code>route.data.policy的类型是< code>any。但是我得到了错误:

元素隐式具有“任何”类型,因为索引表达式不是“数字”类型。

如何将route.data.policy的值解析为枚举的< code>'Admin'或< code>'Manager'?

共有2个答案

楚浩然
2023-03-14

您可以只向键添加一个值,这样< code>Manager = 'Manager'就可以转换枚举,使其接受< code>[]括号中的字符串,而不是基于索引的默认数字。

艾文斌
2023-03-14

如果你键入route.data.policy作为策略呢?然后你可以有,

let policy: Policy = route.data.policy; 
 类似资料:
  • 考虑一下,我得到了以下枚举类: 我想指定ostream操作符( 并获得以下输出,这是Foo。 我的问题是: 是否有存储枚举“名称说明符”的地方?(即,对于枚举类TestEnum,它是None、Foo和Bar),因此我可以编写一个函数(或者至多是函数模板)来指定TestEnum的ostream操作符,例如: 到目前为止,我是这样做的: 我见过一些使用库的解决方案,但这次我不希望使用它。

  • 将grpc与Node一起使用,对我的查询的响应中的枚举将解析为整数值。但是,当我使用BloomRPC进行相同的查询时,枚举将解析为整数值。 是否有参数或选项可以强制使用Node grpc将这些枚举解析为字符串?

  • 正如文档中指定并从源代码中看到的那样,SnakeYAML通过其名称处理枚举。我想要的是按枚举值解析值,例如: 枚举: 亚马尔: 原因是我们的代码风格迫使我们对枚举常量使用大写,而我希望yaml文件中的数据保持小写。

  • 为什么我在浏览java时看不到

  • 问题内容: 我有一个返回int类型的函数。但是,我只有TAX枚举的值。 如何将TAX枚举值转换为整数? 问题答案: 您需要以某种方式使枚举公开,例如 (顺便说一句,我将名称更改为更常规和易读。) 这是 假设 您要在构造函数中分配值。如果这不是您想要的,则需要向我们提供更多信息。

  • 问题内容: 我想知道在Java中是否可以嵌套枚举。 在这里,我想做的是: 拥有一个由CAT和DOG组成的物种,将允许我访问可用CAT和DOG品种的子枚举。例如,我希望能够测试是否装有CAT或DOG,以及动物是否是PERSAN CAT或PITBULL狗。CAT和DOG品种必须是不同的枚举,即CatBreeds枚举和DogBreeds枚举。 这是我要使用的访问模式的示例: 种类: 物种 种狗 品种: