Tagged Union / Discriminated Union
JavaScript 🟡 MidDefinition
Pattern ou un champ commun (type, kind) distingue les variantes d'un objet. Permet un pattern matching exhaustif et du code type-safe. Fondamental en TypeScript.
Analogie
Des colis avec une etiquette de couleur : bleu = fragile, rouge = urgent. L'etiquette determine le traitement.
Exemple de code
function handle(action) {
switch (action.type) {
case 'add': return state + action.value;
case 'reset': return 0;
default: throw new Error(`Unknown: ${action.type}`);
}
}
handle({ type: 'add', value: 5 });
Cas d'usage
Reducers Redux, state machines, gestion d'evenements, API responses.