<A extends Array<unknown>, B>(f: (...a: A) => Option.Option<B>): (
...a: A
) => Array<B>Lifts an Option-returning function into one that returns an array:
Some(a) becomes [a], None becomes [].
When to use
Use when an optional parser or lookup should participate in array pipelines as zero-or-one results.
Example (Lifting an Option function)
import { Array, Option } from "effect"
const parseNumber = Array.liftOption((s: string) => {
const n = Number(s)
return isNaN(n) ? Option.none() : Option.some(n)
})
console.log(parseNumber("123")) // [123]
console.log(parseNumber("abc")) // []export const const liftOption: <
A extends Array<unknown>,
B
>(
f: (...a: A) => Option.Option<B>
) => (...a: A) => Array<B>
Lifts an Option-returning function into one that returns an array:
Some(a) becomes [a], None becomes [].
When to use
Use when an optional parser or lookup should participate in array pipelines
as zero-or-one results.
Example (Lifting an Option function)
import { Array, Option } from "effect"
const parseNumber = Array.liftOption((s: string) => {
const n = Number(s)
return isNaN(n) ? Option.none() : Option.some(n)
})
console.log(parseNumber("123")) // [123]
console.log(parseNumber("abc")) // []
liftOption = <function (type parameter) A in <A extends Array<unknown>, B>(f: (...a: A) => Option.Option<B>): (...a: A) => Array<B>A extends interface Array<T>Array<unknown>, function (type parameter) B in <A extends Array<unknown>, B>(f: (...a: A) => Option.Option<B>): (...a: A) => Array<B>B>(
f: (...a: A) => Option.Option<B>f: (...a: A extends Array<unknown>a: function (type parameter) A in <A extends Array<unknown>, B>(f: (...a: A) => Option.Option<B>): (...a: A) => Array<B>A) => import OptionOption.type Option<A> = Option.None<A> | Option.Some<A>The Option data type represents optional values. An Option<A> is either
Some<A>, containing a value of type A, or None, representing absence.
When to use
Use to represent initial values that may not yet exist
- Returning from partial functions (not defined for all inputs)
- Managing optional fields in data structures
Namespace containing utility types for Option.
When to use
Use to access type-level helpers associated with Option.
Option<function (type parameter) B in <A extends Array<unknown>, B>(f: (...a: A) => Option.Option<B>): (...a: A) => Array<B>B>
) =>
(...a: A extends Array<unknown>a: function (type parameter) A in <A extends Array<unknown>, B>(f: (...a: A) => Option.Option<B>): (...a: A) => Array<B>A): interface Array<T>Array<function (type parameter) B in <A extends Array<unknown>, B>(f: (...a: A) => Option.Option<B>): (...a: A) => Array<B>B> => const fromOption: <A>(
self: Option.Option<A>
) => Array<A>
Converts an Option to an array: Some(a) becomes [a], None becomes [].
When to use
Use to convert a single Option into an array for downstream array operations.
Example (Converting an Option to an array)
import { Array, Option } from "effect"
console.log(Array.fromOption(Option.some(1))) // [1]
console.log(Array.fromOption(Option.none())) // []
fromOption(f: (...a: A) => Option.Option<B>f(...a: A extends Array<unknown>a))