Package: effect
Module: Result
Transforms Option<Result<A, E>> into Result<Option<A>, E>.
When to use
Use when optional absence should be treated as a successful None, while an
inner Result failure should still fail the whole result.
Details
None becomes Success(None)Some(Success(a)) becomes Success(Some(a))Some(Failure(e)) becomes Failure(e)Example (Transposing an Option of a Result)
import { Option, Result } from "effect"
const some = Option.some(Result.succeed(42))
console.log(Result.transposeOption(some))
// Output: { _tag: "Success", success: { _tag: "Some", value: 42 }, ... }
const none = Option.none<Result.Result<number, string>>()
console.log(Result.transposeOption(none))
// Output: { _tag: "Success", success: { _tag: "None" }, ... }
See
transposeMapOption to map and transpose in one stepSignature
declare const transposeOption: <A = never, E = never>(self: Option<Result<A, E>>) => Result<Option<A>, E>
Since v3.14.0