Typescript-将字符串值限制为枚举值

Typescript-将字符串值限制为枚举值,typescript,enums,Typescript,Enums,我希望role具有以下值之一:ADMIN/USER/GUEST 我尝试使用enum实现此功能,但在以下示例中出现错误: enum EnumRole { ADMIN = 'ADMIN', USER = 'USER', GUEST = 'GUEST', } /* ------------------------------------------------- */ const role: EnumRole.ADMIN = 'ADMIN'; 类型“ADMIN”不可分配给类型“Enu

我希望
role
具有以下值之一:
ADMIN/USER/GUEST

我尝试使用
enum
实现此功能,但在以下示例中出现错误:

enum EnumRole {
  ADMIN = 'ADMIN',
  USER = 'USER',
  GUEST = 'GUEST',
}

/* ------------------------------------------------- */

const role: EnumRole.ADMIN = 'ADMIN';
类型“ADMIN”不可分配给类型“EnumRole.ADMIN”


有什么想法吗?

您需要将角色类型设置为强类型, 你可以这样做

const role:'ADMIN' | 'USER' | 'GUEST' = 'ADMIN'

现在,该类型将限制在ADMIN/USER/GUEST中。在本例中,您不需要
enum
,它不应该是
const-role:EnumRole=EnumRole.ADMIN?在我的项目中,我无法更改
角色='ADMIN'
部分。我只能更改枚举模型和/或类型分配。这是怎么做到的?如果你想从字符串中分配它:
const-role:EnumRole=EnumRole['ADMIN']
这个线程可能就是你想要的:虽然不需要enum,出于好奇,我可以将字符串限制为enum值吗?据我所知,enum不能用于设置强类型。