Typescript 选择文字类型

RTW*_*RTW 11 typescript

有没有办法从文字类型中选择(或任何其他解决方案)以连接到主角色界面?

原因是,如果我将来要更改或删除角色中的某些内容,我可以看到需要更改/删除它的位置。

游乐场

type Roles = 'admin' | 'user' | 'guest'

// no connection to Roles
type ApiRoute = { roles: 'admin' | 'user' }

// how to?
type ApiRouteWithCheck = { roles: Pick<Roles, 'admin' | 'user'> }
Run Code Online (Sandbox Code Playgroud)

jon*_*rpe 21

您可以选择Exclude您不想要的值:

type ApiRoute = { roles: Exclude<Roles, 'guest'> };
Run Code Online (Sandbox Code Playgroud)

Extract你所做的价值观:

type ApiRoute = { roles: Extract<Roles, 'admin' | 'user'> };
Run Code Online (Sandbox Code Playgroud)

  • @RTW,您可能希望也可能不希望排除该角色,无论如何您都必须检查这些 (2认同)