hasInformation
Type guard based on the literal information stored in the Either. Lets you precisely target one or many business cases without extra introspection.
Interactive example
Syntax
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>
>;Parameters
information: Expected literal information, or an array of literal informations.input(optional in the curried signature): Value on which to perform the check.
Return value
A boolean, but mostly a type guard: when the result is true, TypeScript knows the Either carries one of the requested informations (Right or Left).
Use cases
- Differentiate several errors/successes within the same
Either. - Match multiple business informations in a single guard.
- Chain with
E.whenHasInformationto trigger a targeted action.
See also
whenHasInformation– Variant with callback.right/left– Constructors that enforce this literal information.
