assertNever
Exhaustiveness checker for TypeScript discriminated unions.
#types
#typescript
#utility
#exhaustiveness
export const assertNever = (value: never): never => { throw new Error(`Unhandled case: ${String(value)}`);};
// Usagetype Status = 'pending' | 'approved' | 'rejected';
function handleStatus(status: Status) { switch (status) { case 'pending': return 'Waiting...'; case 'approved': return 'Done!'; case 'rejected': return 'Failed'; default: return assertNever(status); // Compile error if case is missing }}