Skip to content

Commit 5aadaf0

Browse files
committed
02 ex. Convert Action to generic
1 parent 69b64af commit 5aadaf0

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

exercises/02-roleBasedAccess.code.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ const userAccessModel = {
44
anonymous: ["view"],
55
} as const;
66

7-
export type Role = keyof typeof userAccessModel;
8-
export type Action = typeof userAccessModel[Role][number];
7+
export type Role = keyof typeof userAccessModel
8+
export type Action<R extends Role> = typeof userAccessModel[R][number]
99

10-
export const canUserAccess = (role: Role, action: Action) => {
11-
return (userAccessModel[role] as ReadonlyArray<Action>).includes(action);
10+
export const canUserAccess = <R extends Role>(role: R, action: Action<R>) => {
11+
return (userAccessModel[role] as ReadonlyArray<Action<R>>).includes(action)
1212
};

0 commit comments

Comments
 (0)