如何使TypeScript枚举限制为特定的数字[重复项]

问题描述 投票:0回答:1

我使用枚举类型设置页面的访问代码:

export enum AdminAccess {
  None = 0,
  Dashboard = 1 << 0,
  ModifyUserInfo = 1 << 1,
  Publish = 1 << 2
}

而且我希望路由采用AdminAccess类型的参数,这样它只能在上述值之间选择:

export interface AuthRouteProps {
  children: JSX.Element;
  path: string;
  pageIdentity: AdminAccess;
  exact?: boolean;
}

但是类型检查没有按我预期的那样进行,只要输入数字,检查就会通过。但是我想要的是您只能输入AdminAccess.NoneAdminAccess.Dashboard等。>

<AuthRoute
  path={"somepath"}
  pageIdentity={AdminAccess.ModifyUserInfo} // pass check
  children={<ModifyUserInfoPage />}
/>
<AuthRoute
  path={"somepath"}
  pageIdentity={897654987} // also pass check
  children={<ModifyUserInfoPage />}
/>

我该怎么做?

我使用枚举类型来设置页面的访问代码:export枚举AdminAccess {无= 0,仪表板= 1 << 0,ModifyUserInfo = 1 << 1,Publish = 1 << 2},我想要.. 。

javascript reactjs typescript
1个回答
0
投票

此问题可能是"What is the significance of enum in TypeScript"的副本。将答案翻译成您的问题会产生如下结果:

© www.soinside.com 2019 - 2024. All rights reserved.