TS
Wed Jan 26 2022 22:03:12 GMT+0000 (Coordinated Universal Time)
Saved by @ryanvv
enum TeamStatus { Lead = 1, Manager = 2, Developer = 3 } interface User { firstName: string; lastName: string; status: UserStatus; teamStatus: TeamStatus; } function roleCheck<D, T>(selector: (data: D) => T, roles: T[]): (value: D) => boolean { return (value: D) => roles.includes(selector(value)); } const MANAGER_OR_LEAD = [ TeamStatus.Lead, TeamStatus.Manager ] const isManagerOrLead = roleCheck((user: User) => user.teamStatus, MANAGER_OR_LEAD);
https://obaranovskyi.medium.com/top-5-techniques-in-typescript-to-bring-your-code-to-the-next-level-6f20be543b39undefined
Comments