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.