We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 69b64af commit 5aadaf0Copy full SHA for 5aadaf0
exercises/02-roleBasedAccess.code.ts
@@ -4,9 +4,9 @@ const userAccessModel = {
4
anonymous: ["view"],
5
} as const;
6
7
-export type Role = keyof typeof userAccessModel;
8
-export type Action = typeof userAccessModel[Role][number];
+export type Role = keyof typeof userAccessModel
+export type Action<R extends Role> = typeof userAccessModel[R][number]
9
10
-export const canUserAccess = (role: Role, action: Action) => {
11
- return (userAccessModel[role] as ReadonlyArray<Action>).includes(action);
+export const canUserAccess = <R extends Role>(role: R, action: Action<R>) => {
+ return (userAccessModel[role] as ReadonlyArray<Action<R>>).includes(action)
12
};
0 commit comments