True Myth / result / unwrapOrElse
Function: unwrapOrElse()
Call Signature
unwrapOrElse<
T
,U
,E
>(orElseFn
,result
):T
|U
Safely get the value out of a Result
by returning the wrapped value if it is Ok
, or by applying orElseFn
to the value in the Err
.
This is useful when you need to generate a value (e.g. by using current values in the environment – whether preloaded or by local closure) instead of having a single default value available (as in unwrapOr
).
import { ok, err, unwrapOrElse } from 'true-myth/result';
// You can imagine that someOtherValue might be dynamic.
const someOtherValue = 2;
const handleErr = (errValue: string) => errValue.length + someOtherValue;
const anOk = ok<number, string>(42);
console.log(unwrapOrElse(handleErr, anOk)); // 42
const anErr = err<number, string>('oh teh noes');
console.log(unwrapOrElse(handleErr, anErr)); // 13
Type Parameters
T
T
The value wrapped in the Ok
.
U
U
E
E
The value wrapped in the Err
.
Parameters
orElseFn
(error
) => U
A function applied to the value wrapped in result
if it is an Err
, to generate the final value.
result
Result
<T
, E
>
The result
to unwrap if it is an Ok
.
Returns
T
| U
The value wrapped in result
if it is Ok
or the value returned by orElseFn
applied to the value in Err
.
Call Signature
unwrapOrElse<
T
,U
,E
>(orElseFn
): (result
) =>T
|U
Safely get the value out of a Result
by returning the wrapped value if it is Ok
, or by applying orElseFn
to the value in the Err
.
This is useful when you need to generate a value (e.g. by using current values in the environment – whether preloaded or by local closure) instead of having a single default value available (as in unwrapOr
).
import { ok, err, unwrapOrElse } from 'true-myth/result';
// You can imagine that someOtherValue might be dynamic.
const someOtherValue = 2;
const handleErr = (errValue: string) => errValue.length + someOtherValue;
const anOk = ok<number, string>(42);
console.log(unwrapOrElse(handleErr, anOk)); // 42
const anErr = err<number, string>('oh teh noes');
console.log(unwrapOrElse(handleErr, anErr)); // 13
Type Parameters
T
T
The value wrapped in the Ok
.
U
U
E
E
The value wrapped in the Err
.
Parameters
orElseFn
(error
) => U
A function applied to the value wrapped in result
if it is an Err
, to generate the final value.
Returns
The value wrapped in result
if it is Ok
or the value returned by orElseFn
applied to the value in Err
.
(
result
):T
|U
Parameters
result
Result
<T
, E
>
Returns
T
| U