Skip to content

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, autres ToolPattern).

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 union partagé pour éviter les répétitions.
  • Combinez avec isMatch pour 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.

Voir aussi

Diffusé sous licence MIT.