Type alias Option<T>

Option<T>: Readonly<{
    and: (<R>(opt) => Option<R>);
    andThen: (<R>(fn) => Option<R>);
    expect: ((msg) => T);
    filter: ((fn) => Option<T>);
    isNone: (() => boolean);
    isSome: (() => boolean);
    isSomeAnd: ((fn) => boolean);
    map: (<R>(fn) => Option<R>);
    mapOr: (<R>(defaultValue, fn) => R);
    mapOrElse: (<R>(getDefaultValue, fn) => R);
    okOr: (<E>(err) => Result<T, E>);
    okOrElse: (<E>(getErr) => Result<T, E>);
    or: ((opt) => Option<T>);
    orElse: ((fn) => Option<T>);
    unwrap: (() => T);
    unwrapOr: ((defaultValue) => T);
    unwrapOrElse: ((getDefaultValue) => T);
    xor: ((opt) => Option<T>);
}>

An implementation of Option from Rust stdlib

https://doc.rust-lang.org/std/option/enum.Option.html

Type Parameters

  • T

Type declaration

  • and: (<R>(opt) => Option<R>)
    Some('foo').and(otherOption); // returns `otherOption`
    None().and(otherOption); // returns `None()`
      • <R>(opt): Option<R>
      • Some('foo').and(otherOption); // returns `otherOption`
        None().and(otherOption); // returns `None()`

        Type Parameters

        • R

        Parameters

        Returns Option<R>

  • andThen: (<R>(fn) => Option<R>)
    Some(1).andThen((value) => Some(value * 2)); // returns `Some(2)`
    None().andThen((value) => Some(value * 2)); // returns `None()`
      • <R>(fn): Option<R>
      • Some(1).andThen((value) => Some(value * 2)); // returns `Some(2)`
        None().andThen((value) => Some(value * 2)); // returns `None()`

        Type Parameters

        • R

        Parameters

        Returns Option<R>

  • expect: ((msg) => T)
    Some('foo').expect('error message'); // returns `'foo'`
    None().expect('error message'); // throws `new Error('error message')`
      • (msg): T
      • Some('foo').expect('error message'); // returns `'foo'`
        None().expect('error message'); // throws `new Error('error message')`

        Parameters

        • msg: string

        Returns T

  • filter: ((fn) => Option<T>)
    Some(123).filter((value) => value > 100); // returns `Some(123)`
    Some(12).filter((value) => value > 100); // returns `None()`
    None().filter((value) => value > 100); // returns `None()`
      • (fn): Option<T>
      • Some(123).filter((value) => value > 100); // returns `Some(123)`
        Some(12).filter((value) => value > 100); // returns `None()`
        None().filter((value) => value > 100); // returns `None()`

        Parameters

        • fn: ((arg) => boolean)
            • (arg): boolean
            • Parameters

              • arg: T

              Returns boolean

        Returns Option<T>

  • isNone: (() => boolean)
    Some('foo').isNone(); // returns `false`
    None().isNone(); // returns `true`
      • (): boolean
      • Some('foo').isNone(); // returns `false`
        None().isNone(); // returns `true`

        Returns boolean

  • isSome: (() => boolean)
    Some('foo').isSome(); // returns `true`
    None().isSome(); // returns `false`
      • (): boolean
      • Some('foo').isSome(); // returns `true`
        None().isSome(); // returns `false`

        Returns boolean

  • isSomeAnd: ((fn) => boolean)
    Some(123).isSomeAnd((value) => value > 100); // returns `true`
    Some(12).isSomeAnd((value) => value > 100); // returns `false`
    None().isSomeAnd((value) => value > 100); // returns `false`
      • (fn): boolean
      • Some(123).isSomeAnd((value) => value > 100); // returns `true`
        Some(12).isSomeAnd((value) => value > 100); // returns `false`
        None().isSomeAnd((value) => value > 100); // returns `false`

        Parameters

        • fn: ((arg) => boolean)
            • (arg): boolean
            • Parameters

              • arg: T

              Returns boolean

        Returns boolean

  • map: (<R>(fn) => Option<R>)
    Some(1).map((value) => Some(value * 2)); // returns `Some(2)`
    None().map((value) => Some(value * 2)); // returns `None()`
      • <R>(fn): Option<R>
      • Some(1).map((value) => Some(value * 2)); // returns `Some(2)`
        None().map((value) => Some(value * 2)); // returns `None()`

        Type Parameters

        • R

        Parameters

        • fn: ((arg) => R)
            • (arg): R
            • Parameters

              • arg: T

              Returns R

        Returns Option<R>

  • mapOr: (<R>(defaultValue, fn) => R)
    Some(1).mapOr(10, (value) => Some(value * 2)); // returns `2`
    None().mapOr(10, (value) => Some(value * 2)); // returns `10`
      • <R>(defaultValue, fn): R
      • Some(1).mapOr(10, (value) => Some(value * 2)); // returns `2`
        None().mapOr(10, (value) => Some(value * 2)); // returns `10`

        Type Parameters

        • R

        Parameters

        • defaultValue: R
        • fn: ((arg) => R)
            • (arg): R
            • Parameters

              • arg: T

              Returns R

        Returns R

  • mapOrElse: (<R>(getDefaultValue, fn) => R)
    Some(1).mapOrElse(() => 10, (value) => Some(value * 2)); // returns `2`
    None().mapOrElse(() => 10, (value) => Some(value * 2)); // returns `10`
      • <R>(getDefaultValue, fn): R
      • Some(1).mapOrElse(() => 10, (value) => Some(value * 2)); // returns `2`
        None().mapOrElse(() => 10, (value) => Some(value * 2)); // returns `10`

        Type Parameters

        • R

        Parameters

        • getDefaultValue: (() => R)
            • (): R
            • Returns R

        • fn: ((arg) => R)
            • (arg): R
            • Parameters

              • arg: T

              Returns R

        Returns R

  • okOr: (<E>(err) => Result<T, E>)
    Some('foo').okOr('err'); // returns `Ok('foo')`
    None().okOr('err'); // returns `Err('err')`
      • <E>(err): Result<T, E>
      • Some('foo').okOr('err'); // returns `Ok('foo')`
        None().okOr('err'); // returns `Err('err')`

        Type Parameters

        • E

        Parameters

        • err: E

        Returns Result<T, E>

  • okOrElse: (<E>(getErr) => Result<T, E>)
    Some('foo').okOrElse(() => 'err'); // returns `Ok('foo')`
    None().okOrElse(() => 'err'); // returns `Err('err')`
      • <E>(getErr): Result<T, E>
      • Some('foo').okOrElse(() => 'err'); // returns `Ok('foo')`
        None().okOrElse(() => 'err'); // returns `Err('err')`

        Type Parameters

        • E

        Parameters

        • getErr: (() => E)
            • (): E
            • Returns E

        Returns Result<T, E>

  • or: ((opt) => Option<T>)
    Some('foo').or(otherOption); // returns `Some('foo')`
    None().or(otherOption); // returns `otherOption`
      • (opt): Option<T>
      • Some('foo').or(otherOption); // returns `Some('foo')`
        None().or(otherOption); // returns `otherOption`

        Parameters

        Returns Option<T>

  • orElse: ((fn) => Option<T>)
    Some('foo').or(() => Some('bar')); // returns `Some('foo')`
    None().or(() => Some('bar')); // returns `Some('bar')`
    None().or(() => None()); // returns `None()`
      • (fn): Option<T>
      • Some('foo').or(() => Some('bar')); // returns `Some('foo')`
        None().or(() => Some('bar')); // returns `Some('bar')`
        None().or(() => None()); // returns `None()`

        Parameters

        Returns Option<T>

  • unwrap: (() => T)
    Some('foo').unwrap(); // returns `'foo'`
    None().unwrap(); // throws
      • (): T
      • Some('foo').unwrap(); // returns `'foo'`
        None().unwrap(); // throws

        Returns T

  • unwrapOr: ((defaultValue) => T)
    Some('foo').unwrapOr('bar'); // returns `'foo'`
    None().unwrapOr('bar'); // returns `'bar'`
      • (defaultValue): T
      • Some('foo').unwrapOr('bar'); // returns `'foo'`
        None().unwrapOr('bar'); // returns `'bar'`

        Parameters

        • defaultValue: T

        Returns T

  • unwrapOrElse: ((getDefaultValue) => T)
    Some('foo').unwrapOrElse(() => 'bar'); // returns `'foo'`
    None().unwrapOrElse(() => 'bar'); // returns `'bar'`
      • (getDefaultValue): T
      • Some('foo').unwrapOrElse(() => 'bar'); // returns `'foo'`
        None().unwrapOrElse(() => 'bar'); // returns `'bar'`

        Parameters

        • getDefaultValue: (() => T)
            • (): T
            • Returns T

        Returns T

  • xor: ((opt) => Option<T>)
    Some('foo').xor(Some('bar')); // returns `None()`
    Some('foo').xor(None()); // returns `Some('foo')`
    None().xor(Some('bar')); // returns `Some('bar')`
    None().xor(None()); // returns `None()`
      • (opt): Option<T>
      • Some('foo').xor(Some('bar')); // returns `None()`
        Some('foo').xor(None()); // returns `Some('foo')`
        None().xor(Some('bar')); // returns `Some('bar')`
        None().xor(None()); // returns `None()`

        Parameters

        Returns Option<T>

Generated using TypeDoc