union
union() compose plusieurs motifs en un seul ToolPattern réutilisable. Pratique pour partager des motifs entre match, when, isMatch, ou tout autre endroit où un motif est attendu.
Exemple interactif
Syntaxe
typescript
function union<
GenericInput extends unknown,
const GenericPatterns extends readonly [
Pattern<GenericInput extends infer InferredInput ? InferredInput : never>,
...Pattern<GenericInput extends infer InferredInput ? InferredInput : never>[]
]
>(
...patterns: FixDeepFunctionInfer<
readonly [Pattern<GenericInput>, ...Pattern<GenericInput>[]],
GenericPatterns
>
): ToolPattern<
GenericInput,
GenericPatterns[number] extends infer InferredPattern ? InferredPattern : never
>;Paramètres
patterns: motifs à combiner (littéraux, objets partiels, tuples, prédicats, autresToolPattern).
Valeur de retour
Un ToolPattern qui matche si au moins un des motifs fournis correspond. Vous pouvez le passer à match, when, isMatch, ou le composer dans d'autres union.
Bonnes pratiques
- Regroupez vos motifs métiers (ex: types d'événements, rôles utilisateurs) dans un
unionpartagé pour éviter les répétitions. - Combinez avec
isMatchpour obtenir un type guard réutilisable :const isWrite = P.isMatch(P.union("POST", "PUT")). - Les motifs sont évalués dans l'ordre fourni ; placez les plus spécifiques en premier si un calcul de prédicat coûteux est présent.
