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,isMatchretourne un type guard réutilisable.pattern: motif à comparer (mêmes possibilités quematch).
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
isMatchdans des conditions (if,filter,find) pour affiner vos unions avant unpipeou unmatchplus riche. - Combinez
isMatch(P.union(...))pour créer rapidement des prédicats réutilisables. - Préférez
match/whensi vous devez transformer la valeur plutôt que seulement la filtrer.
