whenNot
La fonction whenNot() applique une transformation uniquement quand le prédicat échoue (ou que le type guard ne correspond pas). Sinon, l'entrée est retournée telle quelle. Existe en version immédiate et currifiée.
Exemple interactif
Syntaxe
Signatures classiques
typescript
// Type Guard predicate
function whenNot<
GenericInput extends AnyValue,
GenericPredicatedInput extends GenericInput,
GenericOutput extends AnyValue | EscapeVoid
>(
input: GenericInput,
ifFunction: (input: GenericInput) => input is GenericPredicatedInput,
theFunction: (predicatedInput: Exclude<GenericInput, GenericPredicatedInput>) => GenericOutput
): GenericOutput | GenericPredicatedInput;
// Boolean predicate
function whenNot<
GenericInput extends AnyValue,
GenericOutput extends AnyValue | EscapeVoid
>(
input: GenericInput,
ifFunction: (input: GenericInput) => boolean,
theFunction: (predicatedInput: GenericInput) => GenericOutput
): GenericOutput | GenericInput;Signatures currifiées
typescript
// Type Guard predicate
function whenNot<
GenericInput extends AnyValue,
GenericPredicatedInput extends GenericInput,
GenericOutput extends AnyValue | EscapeVoid
>(
ifFunction: (input: GenericInput) => input is GenericPredicatedInput,
theFunction: (predicatedInput: Exclude<GenericInput, GenericPredicatedInput>) => GenericOutput
): (
input: GenericInput
) => GenericOutput | BreakGenericLink<GenericPredicatedInput>;
// Boolean predicate
function whenNot<
GenericInput extends AnyValue,
GenericOutput extends AnyValue | EscapeVoid
>(
ifFunction: (input: GenericInput) => boolean,
theFunction: (predicatedInput: GenericInput) => GenericOutput
): (
input: GenericInput
) => GenericOutput | GenericInput;Paramètres
input: La valeur à tester (optionnel en mode currifié).ifFunction: Fonction qui décide si on saute ou non la transformation (peut être un type guard).theFunction: Fonction exécutée uniquement si le prédicat échoue.
Valeur de retour
Si le prédicat échoue, renvoie le résultat de theFunction. Sinon, renvoie l'entrée inchangée.
