打字稿 - 将字符串值限制为枚举值

时间:2021-04-06 08:00:39

标签: typescript enums

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

我尝试使用 enum 来实现这一点,但是在以下最小示例中出现错误:

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

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

const role: EnumRole.ADMIN = 'ADMIN';
<块引用>

类型“ADMIN”不能分配给类型“EnumRole.ADMIN”。

Check playground example

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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

现在类型将被限制在 ADMIN/USER/GUEST 内。在这种情况下您不需要 enum