Skip to content

hasInformation

Type guard basé sur l'information littérale stockée dans l'Either. Permet de cibler précisément un ou plusieurs cas métier sans introspection supplémentaire.

Exemple interactif

Syntaxe

typescript
function hasInformation<
  const GenericInput extends unknown,
  GenericInformation extends (
    GenericInput extends Either
      ? ReturnType<typeof informationKind.getValue<GenericInput>>
      : never
  ),
>(
  input: GenericInput,
  information: GenericInformation | GenericInformation[],
): input is Extract<
  GenericInput,
  Kind<typeof informationKind.definition, GenericInformation>
>;

function hasInformation<
  const GenericInput extends unknown,
  GenericInformation extends (
    GenericInput extends Either
      ? ReturnType<typeof informationKind.getValue<GenericInput>>
      : never
  ),
>(
  information: GenericInformation | GenericInformation[],
): (input: GenericInput) => input is Extract<
  GenericInput,
  Kind<typeof informationKind.definition, GenericInformation>
>;

Paramètres

  • information : Information littérale attendue, ou tableau d'informations littérales.
  • input (optionnel dans la signature curry) : Valeur sur laquelle effectuer le contrôle.

Valeur de retour

Un booléen, mais surtout un type guard : lorsque le résultat est true, TypeScript sait que l'Either porte l'une des informations demandées (côté Right ou Left).

Cas d'usage

  • Différencier plusieurs erreurs/succès dans un même Either.
  • Faire correspondre plusieurs informations métier avec un seul guard.
  • Chaîner avec E.whenHasInformation pour déclencher une action ciblée.

Voir aussi

Diffusé sous licence MIT.