Options
All
  • Public
  • Public/Protected
  • All
Menu

ts-opt

Index

Type aliases

EqualityFunction

EqualityFunction: <T>(a: T, b: T) => boolean

Type declaration

    • <T>(a: T, b: T): boolean
    • Type parameters

      • T

      Parameters

      • a: T
      • b: T

      Returns boolean

Variables

Const none

none: None<any> = ...

Single global instance of None.

Functions

Const ap

  • ap<A, B>(of: Opt<(_: A) => B>): (oa: Opt<A>) => Opt<B>
  • <A, B>(of: Opt<(_: A) => B>) => (oa: Opt<A>): Opt<B>
    

    Apply oa to function of. If any argument is None then result is None.

    ap(opt(x => x > 0))(opt(1)) // Opt(true)
    ap(opt(x => x > 0))(none) // None
    ap(none)(opt(1)) // None
    ap(none)(none) // None
    

    Type parameters

    • A

      input of function inside of

    • B

      output of function inside of

    Parameters

    • of: Opt<(_: A) => B>

    Returns (oa: Opt<A>) => Opt<B>

Const apFn

  • apFn<A, B>(f: (_: A) => B): (oa: Opt<A>) => Opt<B>
  • <A, B>(f: (_: A) => B) => (oa: Opt<A>): Opt<B>
    

    Apply oa to function f. If argument is None then result is None.

    apFn(x => x > 0)(opt(1)) // Opt(true)
    apFn(x => x > 0)(none) // None
    

    Type parameters

    • A

      input of function f

    • B

      output of function f

    Parameters

    • f: (_: A) => B
        • (_: A): B
        • Parameters

          • _: A

          Returns B

    Returns (oa: Opt<A>) => Opt<B>

Const bimap

  • bimap<T, U>(someF: (_: T) => U): (noneF: () => U) => (x: Opt<T>) => Opt<U>
  • see

    Opt.bimap

    Type parameters

    • T

    • U

    Parameters

    • someF: (_: T) => U
        • (_: T): U
        • Parameters

          • _: T

          Returns U

    Returns (noneF: () => U) => (x: Opt<T>) => Opt<U>

      • (noneF: () => U): (x: Opt<T>) => Opt<U>
      • Parameters

        • noneF: () => U
            • (): U
            • Returns U

        Returns (x: Opt<T>) => Opt<U>

Const caseOf

  • caseOf<T, R>(onSome: (x: T) => R): (onNone: () => R) => (x: Opt<T>) => R
  • Type parameters

    • T

    • R

    Parameters

    • onSome: (x: T) => R
        • (x: T): R
        • Parameters

          • x: T

          Returns R

    Returns (onNone: () => R) => (x: Opt<T>) => R

      • (onNone: () => R): (x: Opt<T>) => R
      • Parameters

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

        Returns (x: Opt<T>) => R

          • (x: Opt<T>): R
          • Parameters

            Returns R

Const catOpts

  • catOpts<A>(xs: Opt<A>[]): A[]
  • Transforms array of opts into an array where Nones are omitted and Somes are unwrapped.

    catOpts([opt(1), opt(null)]) // [1]
    

    Type parameters

    • A

    Parameters

    Returns A[]

Const chain

  • chain<T, U>(f: (_: T) => U[]): (x: T[]) => U[]
  • chain<T, U>(f: (_: T) => Opt<U>): (x: Opt<T>) => Opt<U>
  • Type parameters

    • T

    • U

    Parameters

    • f: (_: T) => U[]
        • (_: T): U[]
        • Parameters

          • _: T

          Returns U[]

    Returns (x: T[]) => U[]

      • (x: T[]): U[]
      • Parameters

        • x: T[]

        Returns U[]

  • Type parameters

    • T

    • U

    Parameters

    • f: (_: T) => Opt<U>
        • (_: T): Opt<U>
        • Parameters

          • _: T

          Returns Opt<U>

    Returns (x: Opt<T>) => Opt<U>

Const chainToOpt

  • chainToOpt<T, U>(f: (_: T) => undefined | null | U): (x: Opt<T>) => Opt<U>
  • Type parameters

    • T

    • U

    Parameters

    • f: (_: T) => undefined | null | U
        • (_: T): undefined | null | U
        • Parameters

          • _: T

          Returns undefined | null | U

    Returns (x: Opt<T>) => Opt<U>

Const contains

  • contains<T>(y: T): (x: Opt<T>) => boolean
  • Type parameters

    • T

    Parameters

    • y: T

    Returns (x: Opt<T>) => boolean

      • (x: Opt<T>): boolean
      • Parameters

        Returns boolean

Const equals

  • Type parameters

    • T

    Parameters

    Returns (x: Opt<T>) => boolean

      • (x: Opt<T>): boolean
      • Parameters

        Returns boolean

Const exists

  • exists<T>(y: (_: T) => boolean): (x: Opt<T>) => boolean
  • Type parameters

    • T

    Parameters

    • y: (_: T) => boolean
        • (_: T): boolean
        • Parameters

          • _: T

          Returns boolean

    Returns (x: Opt<T>) => boolean

      • (x: Opt<T>): boolean
      • Parameters

        Returns boolean

Const filter

  • filter<T>(p: (_: T) => boolean): <U>(x: U) => U extends Opt<T> ? Opt<T> : T[]
  • Same as Opt.filter, but also supports arrays.

    see

    Opt.filter

    Type parameters

    • T

    Parameters

    • p: (_: T) => boolean
        • (_: T): boolean
        • Parameters

          • _: T

          Returns boolean

    Returns <U>(x: U) => U extends Opt<T> ? Opt<T> : T[]

      • <U>(x: U): U extends Opt<T> ? Opt<T> : T[]
      • Type parameters

        • U: Opt<T> | T[]

        Parameters

        • x: U

        Returns U extends Opt<T> ? Opt<T> : T[]

Const flatMap

  • flatMap<T, U>(f: (_: T) => U[]): (x: T[]) => U[]
  • flatMap<T, U>(f: (_: T) => Opt<U>): (x: Opt<T>) => Opt<U>
  • Same as Opt.flatMap, but also supports arrays.

    see

    Opt.flatMap

    Type parameters

    • T

    • U

    Parameters

    • f: (_: T) => U[]
        • (_: T): U[]
        • Parameters

          • _: T

          Returns U[]

    Returns (x: T[]) => U[]

      • (x: T[]): U[]
      • Parameters

        • x: T[]

        Returns U[]

  • Same as Opt.flatMap, but also supports arrays.

    see

    Opt.flatMap

    Type parameters

    • T

    • U

    Parameters

    • f: (_: T) => Opt<U>
        • (_: T): Opt<U>
        • Parameters

          • _: T

          Returns Opt<U>

    Returns (x: Opt<T>) => Opt<U>

Const forAll

  • forAll<T>(p: (_: T) => boolean): (x: Opt<T>) => boolean
  • Type parameters

    • T

    Parameters

    • p: (_: T) => boolean
        • (_: T): boolean
        • Parameters

          • _: T

          Returns boolean

    Returns (x: Opt<T>) => boolean

      • (x: Opt<T>): boolean
      • Parameters

        Returns boolean

Const fromArray

  • fromArray<T>(x: [] | [T]): Opt<T>
  • Type parameters

    • T

    Parameters

    • x: [] | [T]

    Returns Opt<T>

Const isOpt

  • isOpt(x: unknown): x is Opt<unknown>
  • Is given value an instance of Opt?

    Parameters

    • x: unknown

    Returns x is Opt<unknown>

Const joinOpt

  • Unwraps one level of nested Opts. Similar to flatten in other libraries or languages.

    joinOpt(some(none)) // None
    joinOpt(some(some(1))) // Some(1)
    

    Type parameters

    • T

    Parameters

    Returns Opt<T>

Const map

  • map<T, U>(f: (_: T) => U): <I, O>(x: I) => O
  • Same as Opt.map, but also supports arrays.

    see

    Opt.map

    Type parameters

    • T

    • U

    Parameters

    • f: (_: T) => U
        • (_: T): U
        • Parameters

          • _: T

          Returns U

    Returns <I, O>(x: I) => O

      • <I, O>(x: I): O
      • Type parameters

        • I: Opt<T> | T[]

        • O: Opt<U> | U[]

        Parameters

        • x: I

        Returns O

Const mapOpt

  • mapOpt<A, B>(f: (_: A) => Opt<B>): (xs: A[]) => B[]
  • Similar to Array.map, but also allows omitting elements.

    mapOpt((x: number) => x > 0 ? opt(x) : none)([-1, 0, 1]) // [1]
    

    Type parameters

    • A

    • B

    Parameters

    • f: (_: A) => Opt<B>
        • (_: A): Opt<B>
        • Parameters

          • _: A

          Returns Opt<B>

    Returns (xs: A[]) => B[]

      • (xs: A[]): B[]
      • Parameters

        • xs: A[]

        Returns B[]

Const narrow

  • narrow<U>(guard: (value: any) => value is U): <T>(x: Opt<T>) => Opt<U>
  • Type parameters

    • U

    Parameters

    • guard: (value: any) => value is U
        • (value: any): value is U
        • Parameters

          • value: any

          Returns value is U

    Returns <T>(x: Opt<T>) => Opt<U>

      • Type parameters

        • T

        Parameters

        Returns Opt<U>

Const opt

  • opt<T>(x: undefined | null | T): Opt<T>
  • Main constructor function - for undefined, null and NaN returns None. Anything else is wrapped into Some.

    Type parameters

    • T

    Parameters

    • x: undefined | null | T

    Returns Opt<T>

Const optEmptyArray

  • optEmptyArray<T>(x: undefined | null | T[]): Opt<T[]>
  • For empty array ([]) returns None, otherwise acts same as opt.

    Type parameters

    • T

    Parameters

    • x: undefined | null | T[]

    Returns Opt<T[]>

Const optEmptyObject

  • optEmptyObject<T>(x: undefined | null | T): Opt<T>
  • For empty object ({}) returns None, otherwise acts same as opt.

    Type parameters

    • T: object

    Parameters

    • x: undefined | null | T

    Returns Opt<T>

Const optEmptyString

  • optEmptyString<T>(x: undefined | null | "" | T): Opt<T>
  • For empty string ('') returns None, otherwise acts same as opt.

    Type parameters

    • T

    Parameters

    • x: undefined | null | "" | T

    Returns Opt<T>

Const optFalsy

  • optFalsy<T>(x: undefined | null | false | "" | 0 | T): Opt<T>
  • For falsy values returns None, otherwise acts same as opt.

    optFalsy(''); // None
    optFalsy(0); // None
    optFalsy(false); // None
    optFalsy(NaN); // None
    

    Type parameters

    • T

    Parameters

    • x: undefined | null | false | "" | 0 | T

    Returns Opt<T>

Const optNegative

  • optNegative(x: undefined | null | number): Opt<number>
  • For numbers lesser than 0 returns None, otherwise acts same as opt. Useful for strange functions which return -1 or other negative numbers on failure.

    optNegative(undefined) // None
    optNegative(1) // Some(1)
    optNegative(0) // Some(0)
    optNegative(-1) // None
    

    Parameters

    • x: undefined | null | number

    Returns Opt<number>

Const optZero

  • optZero<T>(x: undefined | null | 0 | T): Opt<T>
  • For a number 0 returns None, otherwise acts same as opt.

    Type parameters

    • T

    Parameters

    • x: undefined | null | 0 | T

    Returns Opt<T>

Const orCrash

  • orCrash<T>(msg: string): (x: Opt<T>) => T
  • Type parameters

    • T

    Parameters

    • msg: string

    Returns (x: Opt<T>) => T

      • (x: Opt<T>): T
      • Parameters

        Returns T

Const orElse

  • orElse<T>(e: T): (x: Opt<T>) => T
  • Type parameters

    • T

    Parameters

    • e: T

    Returns (x: Opt<T>) => T

      • (x: Opt<T>): T
      • Parameters

        Returns T

Const orElseOpt

  • orElseOpt<T>(def: Opt<T>): (x: Opt<T>) => Opt<T>

Const orFalse

  • orFalse<T>(x: Opt<T>): false | T
  • Type parameters

    • T

    Parameters

    Returns false | T

Const orNaN

  • orNaN<T>(x: Opt<T>): number | T
  • see

    Opt.orNaN

    Type parameters

    • T

    Parameters

    Returns number | T

Const orNull

  • orNull<T>(x: Opt<T>): null | T
  • Type parameters

    • T

    Parameters

    Returns null | T

Const orTrue

  • orTrue<T>(x: Opt<T>): true | T
  • Type parameters

    • T

    Parameters

    Returns true | T

Const orUndef

  • orUndef<T>(x: Opt<T>): undefined | T
  • Type parameters

    • T

    Parameters

    Returns undefined | T

Const print

  • print(tag?: string): <T>(x: Opt<T>) => Opt<T>
  • see

    Opt.print

    Parameters

    • Optional tag: string

    Returns <T>(x: Opt<T>) => Opt<T>

      • Type parameters

        • T

        Parameters

        Returns Opt<T>

Const prop

  • prop<T, K>(key: K): (x: Opt<T>) => Opt<NonNullable<T[K]>>
  • see

    Opt.prop

    Type parameters

    • T: object

    • K: string | number | symbol = T extends object ? keyof T : never

    Parameters

    • key: K

    Returns (x: Opt<T>) => Opt<NonNullable<T[K]>>

      • (x: Opt<T>): Opt<NonNullable<T[K]>>
      • Parameters

        Returns Opt<NonNullable<T[K]>>

Const some

  • some<T>(x: T): Readonly<Some<T>>
  • Constructs Some. Usually it is opt you are looking for (only in rare cases you want to have for example Some(undefined)).

    Type parameters

    • T

    Parameters

    • x: T

    Returns Readonly<Some<T>>

Const someOrCrash

  • someOrCrash<T>(msg: string): (x: Opt<T>) => Some<T>

Const toArray

  • toArray<T>(x: Opt<T>): [] | [T]
  • Type parameters

    • T

    Parameters

    Returns [] | [T]

Const zip

  • zip<U>(other: Opt<U>): <T>(x: Opt<T>) => Opt<[T, U]>
  • zip<U>(other: U[]): <T>(x: T[]) => [T, U][]
  • Same as Opt.zip, but also supports arrays.

    see

    Opt.zip

    Type parameters

    • U

    Parameters

    • other: Opt<U>

    Returns <T>(x: Opt<T>) => Opt<[T, U]>

      • Type parameters

        • T

        Parameters

        Returns Opt<[T, U]>

  • Same as Opt.zip, but also supports arrays.

    see

    Opt.zip

    Type parameters

    • U

    Parameters

    • other: U[]

    Returns <T>(x: T[]) => [T, U][]

      • <T>(x: T[]): [T, U][]
      • Type parameters

        • T

        Parameters

        • x: T[]

        Returns [T, U][]

Const zip3

  • zip3<A>(a: Opt<A>): <B>(b: Opt<B>) => <T>(x: Opt<T>) => Opt<[T, A, B]>
  • see

    Opt.zip3

    Type parameters

    • A

    Parameters

    Returns <B>(b: Opt<B>) => <T>(x: Opt<T>) => Opt<[T, A, B]>

      • <B>(b: Opt<B>): <T>(x: Opt<T>) => Opt<[T, A, B]>
      • Type parameters

        • B

        Parameters

        Returns <T>(x: Opt<T>) => Opt<[T, A, B]>

          • <T>(x: Opt<T>): Opt<[T, A, B]>
          • Type parameters

            • T

            Parameters

            Returns Opt<[T, A, B]>

Const zip4

  • zip4<A>(a: Opt<A>): <B>(b: Opt<B>) => <C>(c: Opt<C>) => <T>(x: Opt<T>) => Opt<[T, A, B, C]>
  • see

    Opt.zip4

    Type parameters

    • A

    Parameters

    Returns <B>(b: Opt<B>) => <C>(c: Opt<C>) => <T>(x: Opt<T>) => Opt<[T, A, B, C]>

      • <B>(b: Opt<B>): <C>(c: Opt<C>) => <T>(x: Opt<T>) => Opt<[T, A, B, C]>
      • Type parameters

        • B

        Parameters

        Returns <C>(c: Opt<C>) => <T>(x: Opt<T>) => Opt<[T, A, B, C]>

          • <C>(c: Opt<C>): <T>(x: Opt<T>) => Opt<[T, A, B, C]>
          • Type parameters

            • C

            Parameters

            Returns <T>(x: Opt<T>) => Opt<[T, A, B, C]>

              • <T>(x: Opt<T>): Opt<[T, A, B, C]>
              • Type parameters

                • T

                Parameters

                Returns Opt<[T, A, B, C]>

Const zip5

  • zip5<A>(a: Opt<A>): <B>(b: Opt<B>) => <C>(c: Opt<C>) => <D>(d: Opt<D>) => <T>(x: Opt<T>) => Opt<[T, A, B, C, D]>
  • see

    Opt.zip5

    Type parameters

    • A

    Parameters

    Returns <B>(b: Opt<B>) => <C>(c: Opt<C>) => <D>(d: Opt<D>) => <T>(x: Opt<T>) => Opt<[T, A, B, C, D]>

      • <B>(b: Opt<B>): <C>(c: Opt<C>) => <D>(d: Opt<D>) => <T>(x: Opt<T>) => Opt<[T, A, B, C, D]>
      • Type parameters

        • B

        Parameters

        Returns <C>(c: Opt<C>) => <D>(d: Opt<D>) => <T>(x: Opt<T>) => Opt<[T, A, B, C, D]>

          • <C>(c: Opt<C>): <D>(d: Opt<D>) => <T>(x: Opt<T>) => Opt<[T, A, B, C, D]>
          • Type parameters

            • C

            Parameters

            Returns <D>(d: Opt<D>) => <T>(x: Opt<T>) => Opt<[T, A, B, C, D]>

              • <D>(d: Opt<D>): <T>(x: Opt<T>) => Opt<[T, A, B, C, D]>
              • Type parameters

                • D

                Parameters

                Returns <T>(x: Opt<T>) => Opt<[T, A, B, C, D]>

                  • <T>(x: Opt<T>): Opt<[T, A, B, C, D]>
                  • Type parameters

                    • T

                    Parameters

                    Returns Opt<[T, A, B, C, D]>

Generated using TypeDoc