Skip to content

whenNothing

whenNothing<T, M>(x, f): [Nothing] extends [T] ? IsEqual<T, Nothing> extends true ? M : M | Just<T> : T

If the given Maybe is a Nothing, then return the result of the given function, otherwise return the given Maybe.

Example

whenNothing(Nothing, () => `foobar`)
// => "foobar"
whenNothing(0, () => `foobar`)
// => 0

Type Parameters

T extends unknown

The maybe type.

M extends unknown = T

The mapped type.

Parameters

x

T

The Maybe value to map.

f

() => M

The map function.

Returns

[Nothing] extends [T] ? IsEqual<T, Nothing> extends true ? M : M | Just<T> : T

The mapped value if Nothing.