Skip to content

isMatch ​

isMatch() teste impérativement si une valeur correspond à un motif et retourne un type guard (value is ...). Idéal pour des conditions simples ou pour affiner le type avant d'entrer dans un pipeline.

Exemple interactif ​

Syntaxe ​

Signature classique ​

typescript
function isMatch<
	GenericInput extends AnyValue, 
	const GenericPattern extends Pattern<GenericInput>
>(
	input: GenericInput, 
	pattern: FixDeepFunctionInfer<Pattern<GenericInput>, GenericPattern>
): input is ForcePredicate<GenericInput, ComplexMatchedValue<GenericInput, PatternValue<GenericPattern>>>;

Signature currifiée ​

typescript
function isMatch<
	GenericInput extends AnyValue, 
	const GenericPattern extends Pattern<GenericInput>
>(
	pattern: FixDeepFunctionInfer<Pattern<GenericInput>, GenericPattern>
): (
	input: GenericInput
) => input is ForcePredicate<GenericInput, ComplexMatchedValue<GenericInput, PatternValue<GenericPattern>>>;

PatternValue est déduit de la forme du motif (littéral, objet partiel, tuple, prédicat, ToolPattern, etc.).

Paramètres ​

  • input (optionnel) : valeur à tester immédiatement. Sans cet argument, isMatch retourne un type guard réutilisable.
  • pattern : motif à comparer (mêmes possibilités que match).

Valeur de retour ​

Un boolean type guard : true si la valeur correspond au motif, et le type est affiné en conséquence. false sinon, sans effet sur le type.

Bonnes pratiques ​

  • Utilisez isMatch dans des conditions (if, filter, find) pour affiner vos unions avant un pipe ou un match plus riche.
  • Combinez isMatch(P.union(...)) pour créer rapidement des prédicats réutilisables.
  • Préférez match/when si vous devez transformer la valeur plutôt que seulement la filtrer.

Voir aussi ​

Diffusé sous licence MIT.