Skip to content

whenJust

whenJust<T, M>(x, f): [Nothing] extends [T] ? IsEqual<T, Nothing> extends true ? T : Maybe<M> : M

Applies a transformation function to the value inside a Just, or returns Nothing if the value is Nothing. This function is used to manipulate the data within a Just, allowing for operations like transformations or computations, while safely handling cases where there is no value (i.e., Nothing).

Example

whenJust(5, x => x * 2)
// => 10
whenJust(Nothing, (x) => `${x}${x}`)
// => Nothing

Type Parameters

T extends unknown

The type of the value inside the Just.

M extends unknown = T

The type of the value returned by function f, wrapped in a Just.

Parameters

x

T

The Maybe value to process. It can be a Just containing a value or Nothing.

f

(x) => M

A function to apply to the value inside the Just.

Returns

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

If x is a Just, returns a new Just containing the result of applying f to the original value. If x is Nothing, returns Nothing.