TypeScript - Template Literal Types & satisfies
Template literal types
type EventName = `on${Capitalize}`;
function on(event: E, handler: () => void) {}
satisfies operator
const routes = {
home: '/',
user: '/users/:id'
} as const satisfies Record;
// keys are literal, values are strings
as const
const ROLES = ['admin','user','guest'] as const;
type Role = typeof ROLES[number]; // 'admin' | 'user' | 'guest'