A new Result<S2, E2>
based on the applied function.
const okValue = Result.ok(2);
const errValue = Result.err('bad');
const foldedOk = Result.fold(
okValue,
(value) => value * 2,
(error) => error,
);
const foldedErr = Result.fold(
errValue,
(value: number) => value * 2,
(error) => error.toUpperCase(),
);
assert.deepStrictEqual(foldedOk, Result.ok(4));
assert.deepStrictEqual(foldedErr, Result.err('BAD'));
const foldNumbers = Result.fold(
(value: number) => value * 3,
(error: string) => error.length,
);
assert.deepStrictEqual(foldNumbers(Result.ok(3)), Result.ok(9));
assert.deepStrictEqual(foldNumbers(Result.err('oops')), Result.err(4));
Applies one of two functions depending on whether the Result
is Ok
or
Err
.
The type of the success value returned by mapFn
.
The type of the error value returned by mapErrFn
.
A new Result<S2, E2>
based on the applied function.
const okValue = Result.ok(2);
const errValue = Result.err('bad');
const foldedOk = Result.fold(
okValue,
(value) => value * 2,
(error) => error,
);
const foldedErr = Result.fold(
errValue,
(value: number) => value * 2,
(error) => error.toUpperCase(),
);
assert.deepStrictEqual(foldedOk, Result.ok(4));
assert.deepStrictEqual(foldedErr, Result.err('BAD'));
const foldNumbers = Result.fold(
(value: number) => value * 3,
(error: string) => error.length,
);
assert.deepStrictEqual(foldNumbers(Result.ok(3)), Result.ok(9));
assert.deepStrictEqual(foldNumbers(Result.err('oops')), Result.err(4));
Applies one of two functions depending on whether the
Result
isOk
orErr
.