assertNever

Verificador de exhaustividad para uniones discriminadas de TypeScript.

#types #typescript #utility #exhaustiveness
export const assertNever = (value: never): never => {
throw new Error(`Unhandled case: ${String(value)}`);
};
// Usage
type 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
}
}

Comparte este snippet

Comentarios