Function: map()

Applies a transformation function to the success value of a Result or ResultAsync. If the input is a Failure, it will be returned unchanged.

Type Param

The input Result or ResultAsync.

Type Param

The transformed success value type.

Examples

import { 
import Result
Result
} from '@praha/byethrow';
const
const result: Result.Result<number, never>
result
=
import Result
Result
.
const pipe: <Result.Result<2, never>, Result.Result<number, never>>(a: Result.Result<2, never>, ab: (a: Result.Result<2, never>) => Result.Result<number, never>) => Result.Result<number, never> (+25 overloads)
pipe
(
import Result
Result
.
const succeed: <2>(value: 2) => Result.Result<2, never> (+1 overload)
succeed
(2),
import Result
Result
.
const map: <Result.Result<2, never>, number>(fn: (a: 2) => number) => (result: Result.Result<2, never>) => Result.Result<number, never> (+1 overload)
map
((
x: 2
x
) =>
x: 2
x
* 10),
); // { type: 'Success', value: 20 }
import { 
import Result
Result
} from '@praha/byethrow';
const
const result: Result.Result<number, "error">
result
=
import Result
Result
.
const pipe: <Result.Result<never, "error">, Result.Result<number, "error">>(a: Result.Result<never, "error">, ab: (a: Result.Result<never, "error">) => Result.Result<number, "error">) => Result.Result<number, "error"> (+25 overloads)
pipe
(
import Result
Result
.
const fail: <"error">(error: "error") => Result.Result<never, "error"> (+1 overload)
fail
('error'),
import Result
Result
.
const map: <Result.Result<never, "error">, number>(fn: (a: never) => number) => (result: Result.Result<never, "error">) => Result.Result<number, "error"> (+1 overload)
map
((
x: never
x
) =>
x: never
x
* 10),
); // { type: 'Failure', error: 'error' }

See

pipe - It is recommended to use this function with the pipe function for better readability and composability.

Call Signature

map<R1, T2>(fn): (result) => ResultFor<R1, T2, InferFailure<R1>>

Type Parameters

R1

R1 extends ResultMaybeAsync<any, any>

T2

T2

Parameters

fn

(a) => T2

Returns

(result): ResultFor<R1, T2, InferFailure<R1>>

Parameters

result

R1

Returns

ResultFor<R1, T2, InferFailure<R1>>

Call Signature

map<T1, T2>(fn): <R1>(result) => ResultFor<R1, T2, InferFailure<R1>>

Type Parameters

T1

T1

T2

T2

Parameters

fn

(a) => T2

Returns

<R1>(result): ResultFor<R1, T2, InferFailure<R1>>

Type Parameters

R1

R1 extends ResultMaybeAsync<T1, any>

Parameters

result

R1

Returns

ResultFor<R1, T2, InferFailure<R1>>