Function: and()
Call Signature
and<
T
,U
>(andMaybe
,maybe
):Maybe
<U
>
You can think of this like a short-circuiting logical "and" operation on a Maybe
type. If maybe
is just
, then the result is the andMaybe
. If maybe
is Nothing
, the result is Nothing
.
This is useful when you have another Maybe
value you want to provide if and only if you have a Just
– that is, when you need to make sure that if you Nothing
, whatever else you're handing a Maybe
to also gets a Nothing
.
Notice that, unlike in map
or its variants, the original maybe
is not involved in constructing the new Maybe
.
Examples
import Maybe from 'true-myth/maybe';
const justA = Maybe.just('A');
const justB = Maybe.just('B');
const nothing: Maybe<number> = nothing();
console.log(Maybe.and(justB, justA).toString()); // Just(B)
console.log(Maybe.and(justB, nothing).toString()); // Nothing
console.log(Maybe.and(nothing, justA).toString()); // Nothing
console.log(Maybe.and(nothing, nothing).toString()); // Nothing
Type Parameters
T
T
The type of the initial wrapped value.
U
U
The type of the wrapped value of the returned Maybe
.
Parameters
andMaybe
Maybe
<U
>
The Maybe
instance to return if maybe
is Just
maybe
Maybe
<T
>
The Maybe
instance to check.
Returns
Maybe
<U
>
Nothing
if the original maybe
is Nothing
, or andMaybe
if the original maybe
is Just
.
Call Signature
and<
T
,U
>(andMaybe
): (maybe
) =>Maybe
<U
>
You can think of this like a short-circuiting logical "and" operation on a Maybe
type. If maybe
is just
, then the result is the andMaybe
. If maybe
is Nothing
, the result is Nothing
.
This is useful when you have another Maybe
value you want to provide if and only if you have a Just
– that is, when you need to make sure that if you Nothing
, whatever else you're handing a Maybe
to also gets a Nothing
.
Notice that, unlike in map
or its variants, the original maybe
is not involved in constructing the new Maybe
.
Examples
import Maybe from 'true-myth/maybe';
const justA = Maybe.just('A');
const justB = Maybe.just('B');
const nothing: Maybe<number> = nothing();
console.log(Maybe.and(justB, justA).toString()); // Just(B)
console.log(Maybe.and(justB, nothing).toString()); // Nothing
console.log(Maybe.and(nothing, justA).toString()); // Nothing
console.log(Maybe.and(nothing, nothing).toString()); // Nothing
Type Parameters
T
T
The type of the initial wrapped value.
U
U
The type of the wrapped value of the returned Maybe
.
Parameters
andMaybe
Maybe
<U
>
The Maybe
instance to return if maybe
is Just
Returns
Nothing
if the original maybe
is Nothing
, or andMaybe
if the original maybe
is Just
.
(
maybe
):Maybe
<U
>
Parameters
maybe
Maybe
<T
>
Returns
Maybe
<U
>