exhaustive
exhaustive() dépaquette un PatternResult et vérifie que tous les cas ont été couverts. On l'utilise aussi bien avec le builder match(...).exhaustive() qu'en appel direct sur n'importe quel PatternResult. Si un motif manque, une InvalidExhaustivePatternError est levée au moment de l'appel.
Exemple interactif
Syntaxe
typescript
function exhaustive<
const GenericInput extends unknown,
GenericResult extends PatternResult<GenericInput>
>(result: GenericResult): Unwrap<GenericResult>;Paramètres
result: unPatternResultretourné par un buildermatch(après.with()/.when()).
Valeur de retour
La valeur réellement contenue dans le PatternResult, avec le type affiné. Si l'union initiale n'a pas été totalement couverte, l'appel échoue et vous montre la valeur restante.
Bonnes pratiques
- Sur le builder :
match(...).with(...).exhaustive()garantit que chaque branche est couverte avant de rendre la valeur finale. - En appel direct : passez-lui n'importe quel
PatternResultpour le déballer et forcer la vérification d'exhaustivité. - Pendant le développement, laissez
exhaustivevous signaler les cas manquants plutôt que d'ajouter unotherwisetrop large.
