Hyperlinkv0.8.0-beta.28

Effect

Effect.optionconsteffect/Effect.ts:2253
<A, E, R>(self: Effect<A, E, R>): Effect<Option<A>, never, R>

Converts success to Option.some and failure to Option.none.

When to use

Use when you only care whether an effect succeeds and want recoverable failures represented as Option.none.

Details

Success values become Option.some, recoverable failures become Option.none, and defects still fail the effect.

Gotchas

option only captures typed, recoverable failures as Option.none. Defects and interruptions are not captured inside the Option and still fail the effect.

option also discards typed failure values. Use result if the failure value matters.

Example (Capturing success or failure as Option)

import { Console, Effect, Option } from "effect"

const program = Effect.gen(function*() {
  const someValue = yield* Effect.option(Effect.succeed(1))
  const noneValue = yield* Effect.option(Effect.fail("missing"))

  yield* Console.log(Option.isSome(someValue))
  yield* Console.log(Option.isNone(noneValue))
})

Effect.runPromise(program)
// true
// true
outcome encapsulationresultexit
Source effect/Effect.ts:22531 lines
export const option: <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, never, R> = internal.option
Referenced by 1 symbols