将任何值解析为枚举类型

27 浏览
0 Comments

将任何值解析为枚举类型

这个问题已经有答案了:

如何在TypeScript中将字符串转换为枚举类型?

在一个 Angular 12 应用中,我有一个枚举:

export enum Policy {
  Admin,
  Manager
} 

我尝试按下列方式定义一个类型为 Policy 的变量:

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

route.data.policy 的类型是 any。但我得到了以下错误信息:

元素隐式具有“any”类型,因为索引表达式的类型不是“number”。

如何将 route.data.policy 的值 \'Admin\'\'Manager\' 解析为枚举类型?

admin 更改状态以发布 2023年5月24日
0
0 Comments

你可以为枚举的键添加一个值,例如Manager = 'Manager',这会将枚举转换为它接受在[]括号中的字符串,而不是默认基于索引的数字。

0
0 Comments

如果你将route.data.policy输入为Policy,那么你就可以这样做,

let policy: Policy = route.data.policy; 

0