whenHasInformation
Pattern matching fonctionnel basé sur l'information littérale d'un Either. La fonction n'est exécutée que lorsque l'information (ou l'une des informations) correspond.
Exemple interactif
Syntaxe
Signature classique
typescript
function whenHasInformation<
const GenericInput extends unknown,
GenericInformation extends ReturnType<typeof eitherInformationKind.getValue<GenericInput>>,
const GenericOutput extends AnyValue
>(
input: GenericInput,
information: GenericInformation | GenericInformation[],
theFunction: (value: Unwrap<Extract<GenericInput, Kind<typeof eitherInformationKind.definition, GenericInformation> & WrappedValue>>) => GenericOutput
): GenericOutput | Exclude<GenericInput, Kind<typeof eitherInformationKind.definition, GenericInformation>>;Signature currifiée
typescript
function whenHasInformation<
const GenericInput extends unknown,
GenericInformation extends ReturnType<typeof eitherInformationKind.getValue<GenericInput>>,
const GenericOutput extends AnyValue
>(
information: GenericInformation | GenericInformation[],
theFunction: (value: Unwrap<Extract<GenericInput, Kind<typeof eitherInformationKind.definition, GenericInformation> & WrappedValue>>) => GenericOutput
): (input: GenericInput) => GenericOutput | Exclude<GenericInput, Kind<typeof eitherInformationKind.definition, GenericInformation>>;Paramètres
information: Littéral ou tableau de littéraux acceptés.theFunction: Callback invoqué uniquement lorsque l'information correspond.input: Valeur à traiter immédiatement (sinon utilisez la version currifiée dans vos pipes).
Valeur de retour
- Signature classique : retourne soit le résultat du callback, soit la valeur initiale (si aucune info ne correspond).
- Signature currifiée : retourne une fonction prête à composer.
Cas d'usage
- Écrire du pattern matching exhaustif sans
switchniifimbriqués. - Factoriser les traitements communs à plusieurs succès/erreurs (
informationaccepte un tableau). - Réagir finement à des états métier décrits via
E.right/E.left.
Voir aussi
hasInformation– Type guard bas niveau.whenIsRight/whenIsLeft– Pour opérer uniquement selon le côté.
