Options
All
  • Public
  • Public/Protected
  • All
Menu

Module 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 act

  • act<I, R>(f1: (_: I) => Opt<R>): (x: Opt<I>) => Opt<R>
  • act<I, A1, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<R>): (x: Opt<I>) => Opt<R>
  • act<I, A1, A2, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<R>): (x: Opt<I>) => Opt<R>
  • act<I, A1, A2, A3, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<R>): (x: Opt<I>) => Opt<R>
  • act<I, A1, A2, A3, A4, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<R>): (x: Opt<I>) => Opt<R>
  • act<I, A1, A2, A3, A4, A5, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<R>): (x: Opt<I>) => Opt<R>
  • act<I, A1, A2, A3, A4, A5, A6, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<A6>, f7: (_: A6) => Opt<R>): (x: Opt<I>) => Opt<R>
  • act<I, A1, A2, A3, A4, A5, A6, A7, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<A6>, f7: (_: A6) => Opt<A7>, f8: (_: A7) => Opt<R>): (x: Opt<I>) => Opt<R>
  • act<I, A1, A2, A3, A4, A5, A6, A7, A8, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<A6>, f7: (_: A6) => Opt<A7>, f8: (_: A7) => Opt<A8>, f9: (_: A8) => Opt<R>): (x: Opt<I>) => Opt<R>
  • act<I, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<A6>, f7: (_: A6) => Opt<A7>, f8: (_: A7) => Opt<A8>, f9: (_: A8) => Opt<A9>, f10: (_: A9) => Opt<R>): (x: Opt<I>) => Opt<R>
  • see

    Opt.act

    Type parameters

    • I

    • R

    Parameters

    • f1: (_: I) => Opt<R>
        • (_: I): Opt<R>
        • Parameters

          • _: I

          Returns Opt<R>

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

  • see

    Opt.act

    Type parameters

    • I

    • A1

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<R>
        • (_: A1): Opt<R>
        • Parameters

          • _: A1

          Returns Opt<R>

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

  • see

    Opt.act

    Type parameters

    • I

    • A1

    • A2

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<R>
        • (_: A2): Opt<R>
        • Parameters

          • _: A2

          Returns Opt<R>

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

  • see

    Opt.act

    Type parameters

    • I

    • A1

    • A2

    • A3

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<R>
        • (_: A3): Opt<R>
        • Parameters

          • _: A3

          Returns Opt<R>

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

  • see

    Opt.act

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<R>
        • (_: A4): Opt<R>
        • Parameters

          • _: A4

          Returns Opt<R>

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

  • see

    Opt.act

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<R>
        • (_: A5): Opt<R>
        • Parameters

          • _: A5

          Returns Opt<R>

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

  • see

    Opt.act

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<A6>
        • (_: A5): Opt<A6>
        • Parameters

          • _: A5

          Returns Opt<A6>

    • f7: (_: A6) => Opt<R>
        • (_: A6): Opt<R>
        • Parameters

          • _: A6

          Returns Opt<R>

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

  • see

    Opt.act

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<A6>
        • (_: A5): Opt<A6>
        • Parameters

          • _: A5

          Returns Opt<A6>

    • f7: (_: A6) => Opt<A7>
        • (_: A6): Opt<A7>
        • Parameters

          • _: A6

          Returns Opt<A7>

    • f8: (_: A7) => Opt<R>
        • (_: A7): Opt<R>
        • Parameters

          • _: A7

          Returns Opt<R>

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

  • see

    Opt.act

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<A6>
        • (_: A5): Opt<A6>
        • Parameters

          • _: A5

          Returns Opt<A6>

    • f7: (_: A6) => Opt<A7>
        • (_: A6): Opt<A7>
        • Parameters

          • _: A6

          Returns Opt<A7>

    • f8: (_: A7) => Opt<A8>
        • (_: A7): Opt<A8>
        • Parameters

          • _: A7

          Returns Opt<A8>

    • f9: (_: A8) => Opt<R>
        • (_: A8): Opt<R>
        • Parameters

          • _: A8

          Returns Opt<R>

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

  • see

    Opt.act

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • A9

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<A6>
        • (_: A5): Opt<A6>
        • Parameters

          • _: A5

          Returns Opt<A6>

    • f7: (_: A6) => Opt<A7>
        • (_: A6): Opt<A7>
        • Parameters

          • _: A6

          Returns Opt<A7>

    • f8: (_: A7) => Opt<A8>
        • (_: A7): Opt<A8>
        • Parameters

          • _: A7

          Returns Opt<A8>

    • f9: (_: A8) => Opt<A9>
        • (_: A8): Opt<A9>
        • Parameters

          • _: A8

          Returns Opt<A9>

    • f10: (_: A9) => Opt<R>
        • (_: A9): Opt<R>
        • Parameters

          • _: A9

          Returns Opt<R>

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

Const actToOpt

  • actToOpt<I, R>(f1: (_: I) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • actToOpt<I, A1, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • actToOpt<I, A1, A2, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • actToOpt<I, A1, A2, A3, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • actToOpt<I, A1, A2, A3, A4, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • actToOpt<I, A1, A2, A3, A4, A5, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • actToOpt<I, A1, A2, A3, A4, A5, A6, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | A6, f7: (_: A6) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • actToOpt<I, A1, A2, A3, A4, A5, A6, A7, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | A6, f7: (_: A6) => undefined | null | A7, f8: (_: A7) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • actToOpt<I, A1, A2, A3, A4, A5, A6, A7, A8, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | A6, f7: (_: A6) => undefined | null | A7, f8: (_: A7) => undefined | null | A8, f9: (_: A8) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • actToOpt<I, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | A6, f7: (_: A6) => undefined | null | A7, f8: (_: A7) => undefined | null | A8, f9: (_: A8) => undefined | null | A9, f10: (_: A9) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • Type parameters

    • I

    • R

    Parameters

    • f1: (_: I) => undefined | null | R
        • (_: I): undefined | null | R
        • Parameters

          • _: I

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | R
        • (_: A1): undefined | null | R
        • Parameters

          • _: A1

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | R
        • (_: A2): undefined | null | R
        • Parameters

          • _: A2

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | R
        • (_: A3): undefined | null | R
        • Parameters

          • _: A3

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | R
        • (_: A4): undefined | null | R
        • Parameters

          • _: A4

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | R
        • (_: A5): undefined | null | R
        • Parameters

          • _: A5

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | A6
        • (_: A5): undefined | null | A6
        • Parameters

          • _: A5

          Returns undefined | null | A6

    • f7: (_: A6) => undefined | null | R
        • (_: A6): undefined | null | R
        • Parameters

          • _: A6

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | A6
        • (_: A5): undefined | null | A6
        • Parameters

          • _: A5

          Returns undefined | null | A6

    • f7: (_: A6) => undefined | null | A7
        • (_: A6): undefined | null | A7
        • Parameters

          • _: A6

          Returns undefined | null | A7

    • f8: (_: A7) => undefined | null | R
        • (_: A7): undefined | null | R
        • Parameters

          • _: A7

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | A6
        • (_: A5): undefined | null | A6
        • Parameters

          • _: A5

          Returns undefined | null | A6

    • f7: (_: A6) => undefined | null | A7
        • (_: A6): undefined | null | A7
        • Parameters

          • _: A6

          Returns undefined | null | A7

    • f8: (_: A7) => undefined | null | A8
        • (_: A7): undefined | null | A8
        • Parameters

          • _: A7

          Returns undefined | null | A8

    • f9: (_: A8) => undefined | null | R
        • (_: A8): undefined | null | R
        • Parameters

          • _: A8

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • A9

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | A6
        • (_: A5): undefined | null | A6
        • Parameters

          • _: A5

          Returns undefined | null | A6

    • f7: (_: A6) => undefined | null | A7
        • (_: A6): undefined | null | A7
        • Parameters

          • _: A6

          Returns undefined | null | A7

    • f8: (_: A7) => undefined | null | A8
        • (_: A7): undefined | null | A8
        • Parameters

          • _: A7

          Returns undefined | null | A8

    • f9: (_: A8) => undefined | null | A9
        • (_: A8): undefined | null | A9
        • Parameters

          • _: A8

          Returns undefined | null | A9

    • f10: (_: A9) => undefined | null | R
        • (_: A9): undefined | null | R
        • Parameters

          • _: A9

          Returns undefined | null | R

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

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 at

  • at(index: number): <T>(x: T[] | Opt<T[]>) => Opt<T>
  • Same as Opt.at, but also supports unwrapped arrays.

    see

    Opt.at

    Parameters

    • index: number

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

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

        • T

        Parameters

        • x: T[] | Opt<T[]>

        Returns Opt<T>

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 chainFlow

  • chainFlow<I, R>(f1: (_: I) => Opt<R>): (x: Opt<I>) => Opt<R>
  • chainFlow<I, A1, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<R>): (x: Opt<I>) => Opt<R>
  • chainFlow<I, A1, A2, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<R>): (x: Opt<I>) => Opt<R>
  • chainFlow<I, A1, A2, A3, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<R>): (x: Opt<I>) => Opt<R>
  • chainFlow<I, A1, A2, A3, A4, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<R>): (x: Opt<I>) => Opt<R>
  • chainFlow<I, A1, A2, A3, A4, A5, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<R>): (x: Opt<I>) => Opt<R>
  • chainFlow<I, A1, A2, A3, A4, A5, A6, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<A6>, f7: (_: A6) => Opt<R>): (x: Opt<I>) => Opt<R>
  • chainFlow<I, A1, A2, A3, A4, A5, A6, A7, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<A6>, f7: (_: A6) => Opt<A7>, f8: (_: A7) => Opt<R>): (x: Opt<I>) => Opt<R>
  • chainFlow<I, A1, A2, A3, A4, A5, A6, A7, A8, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<A6>, f7: (_: A6) => Opt<A7>, f8: (_: A7) => Opt<A8>, f9: (_: A8) => Opt<R>): (x: Opt<I>) => Opt<R>
  • chainFlow<I, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>(f1: (_: I) => Opt<A1>, f2: (_: A1) => Opt<A2>, f3: (_: A2) => Opt<A3>, f4: (_: A3) => Opt<A4>, f5: (_: A4) => Opt<A5>, f6: (_: A5) => Opt<A6>, f7: (_: A6) => Opt<A7>, f8: (_: A7) => Opt<A8>, f9: (_: A8) => Opt<A9>, f10: (_: A9) => Opt<R>): (x: Opt<I>) => Opt<R>
  • Type parameters

    • I

    • R

    Parameters

    • f1: (_: I) => Opt<R>
        • (_: I): Opt<R>
        • Parameters

          • _: I

          Returns Opt<R>

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

  • Type parameters

    • I

    • A1

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<R>
        • (_: A1): Opt<R>
        • Parameters

          • _: A1

          Returns Opt<R>

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

  • Type parameters

    • I

    • A1

    • A2

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<R>
        • (_: A2): Opt<R>
        • Parameters

          • _: A2

          Returns Opt<R>

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<R>
        • (_: A3): Opt<R>
        • Parameters

          • _: A3

          Returns Opt<R>

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<R>
        • (_: A4): Opt<R>
        • Parameters

          • _: A4

          Returns Opt<R>

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<R>
        • (_: A5): Opt<R>
        • Parameters

          • _: A5

          Returns Opt<R>

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<A6>
        • (_: A5): Opt<A6>
        • Parameters

          • _: A5

          Returns Opt<A6>

    • f7: (_: A6) => Opt<R>
        • (_: A6): Opt<R>
        • Parameters

          • _: A6

          Returns Opt<R>

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<A6>
        • (_: A5): Opt<A6>
        • Parameters

          • _: A5

          Returns Opt<A6>

    • f7: (_: A6) => Opt<A7>
        • (_: A6): Opt<A7>
        • Parameters

          • _: A6

          Returns Opt<A7>

    • f8: (_: A7) => Opt<R>
        • (_: A7): Opt<R>
        • Parameters

          • _: A7

          Returns Opt<R>

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<A6>
        • (_: A5): Opt<A6>
        • Parameters

          • _: A5

          Returns Opt<A6>

    • f7: (_: A6) => Opt<A7>
        • (_: A6): Opt<A7>
        • Parameters

          • _: A6

          Returns Opt<A7>

    • f8: (_: A7) => Opt<A8>
        • (_: A7): Opt<A8>
        • Parameters

          • _: A7

          Returns Opt<A8>

    • f9: (_: A8) => Opt<R>
        • (_: A8): Opt<R>
        • Parameters

          • _: A8

          Returns Opt<R>

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • A9

    • R

    Parameters

    • f1: (_: I) => Opt<A1>
        • (_: I): Opt<A1>
        • Parameters

          • _: I

          Returns Opt<A1>

    • f2: (_: A1) => Opt<A2>
        • (_: A1): Opt<A2>
        • Parameters

          • _: A1

          Returns Opt<A2>

    • f3: (_: A2) => Opt<A3>
        • (_: A2): Opt<A3>
        • Parameters

          • _: A2

          Returns Opt<A3>

    • f4: (_: A3) => Opt<A4>
        • (_: A3): Opt<A4>
        • Parameters

          • _: A3

          Returns Opt<A4>

    • f5: (_: A4) => Opt<A5>
        • (_: A4): Opt<A5>
        • Parameters

          • _: A4

          Returns Opt<A5>

    • f6: (_: A5) => Opt<A6>
        • (_: A5): Opt<A6>
        • Parameters

          • _: A5

          Returns Opt<A6>

    • f7: (_: A6) => Opt<A7>
        • (_: A6): Opt<A7>
        • Parameters

          • _: A6

          Returns Opt<A7>

    • f8: (_: A7) => Opt<A8>
        • (_: A7): Opt<A8>
        • Parameters

          • _: A7

          Returns Opt<A8>

    • f9: (_: A8) => Opt<A9>
        • (_: A8): Opt<A9>
        • Parameters

          • _: A8

          Returns Opt<A9>

    • f10: (_: A9) => Opt<R>
        • (_: A9): Opt<R>
        • Parameters

          • _: A9

          Returns Opt<R>

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

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 chainToOptFlow

  • chainToOptFlow<I, R>(f1: (_: I) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • chainToOptFlow<I, A1, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • chainToOptFlow<I, A1, A2, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • chainToOptFlow<I, A1, A2, A3, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • chainToOptFlow<I, A1, A2, A3, A4, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • chainToOptFlow<I, A1, A2, A3, A4, A5, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • chainToOptFlow<I, A1, A2, A3, A4, A5, A6, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | A6, f7: (_: A6) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • chainToOptFlow<I, A1, A2, A3, A4, A5, A6, A7, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | A6, f7: (_: A6) => undefined | null | A7, f8: (_: A7) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • chainToOptFlow<I, A1, A2, A3, A4, A5, A6, A7, A8, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | A6, f7: (_: A6) => undefined | null | A7, f8: (_: A7) => undefined | null | A8, f9: (_: A8) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • chainToOptFlow<I, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>(f1: (_: I) => undefined | null | A1, f2: (_: A1) => undefined | null | A2, f3: (_: A2) => undefined | null | A3, f4: (_: A3) => undefined | null | A4, f5: (_: A4) => undefined | null | A5, f6: (_: A5) => undefined | null | A6, f7: (_: A6) => undefined | null | A7, f8: (_: A7) => undefined | null | A8, f9: (_: A8) => undefined | null | A9, f10: (_: A9) => undefined | null | R): (x: Opt<I>) => Opt<R>
  • Type parameters

    • I

    • R

    Parameters

    • f1: (_: I) => undefined | null | R
        • (_: I): undefined | null | R
        • Parameters

          • _: I

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | R
        • (_: A1): undefined | null | R
        • Parameters

          • _: A1

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | R
        • (_: A2): undefined | null | R
        • Parameters

          • _: A2

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | R
        • (_: A3): undefined | null | R
        • Parameters

          • _: A3

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | R
        • (_: A4): undefined | null | R
        • Parameters

          • _: A4

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | R
        • (_: A5): undefined | null | R
        • Parameters

          • _: A5

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | A6
        • (_: A5): undefined | null | A6
        • Parameters

          • _: A5

          Returns undefined | null | A6

    • f7: (_: A6) => undefined | null | R
        • (_: A6): undefined | null | R
        • Parameters

          • _: A6

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | A6
        • (_: A5): undefined | null | A6
        • Parameters

          • _: A5

          Returns undefined | null | A6

    • f7: (_: A6) => undefined | null | A7
        • (_: A6): undefined | null | A7
        • Parameters

          • _: A6

          Returns undefined | null | A7

    • f8: (_: A7) => undefined | null | R
        • (_: A7): undefined | null | R
        • Parameters

          • _: A7

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | A6
        • (_: A5): undefined | null | A6
        • Parameters

          • _: A5

          Returns undefined | null | A6

    • f7: (_: A6) => undefined | null | A7
        • (_: A6): undefined | null | A7
        • Parameters

          • _: A6

          Returns undefined | null | A7

    • f8: (_: A7) => undefined | null | A8
        • (_: A7): undefined | null | A8
        • Parameters

          • _: A7

          Returns undefined | null | A8

    • f9: (_: A8) => undefined | null | R
        • (_: A8): undefined | null | R
        • Parameters

          • _: A8

          Returns undefined | null | R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • A9

    • R

    Parameters

    • f1: (_: I) => undefined | null | A1
        • (_: I): undefined | null | A1
        • Parameters

          • _: I

          Returns undefined | null | A1

    • f2: (_: A1) => undefined | null | A2
        • (_: A1): undefined | null | A2
        • Parameters

          • _: A1

          Returns undefined | null | A2

    • f3: (_: A2) => undefined | null | A3
        • (_: A2): undefined | null | A3
        • Parameters

          • _: A2

          Returns undefined | null | A3

    • f4: (_: A3) => undefined | null | A4
        • (_: A3): undefined | null | A4
        • Parameters

          • _: A3

          Returns undefined | null | A4

    • f5: (_: A4) => undefined | null | A5
        • (_: A4): undefined | null | A5
        • Parameters

          • _: A4

          Returns undefined | null | A5

    • f6: (_: A5) => undefined | null | A6
        • (_: A5): undefined | null | A6
        • Parameters

          • _: A5

          Returns undefined | null | A6

    • f7: (_: A6) => undefined | null | A7
        • (_: A6): undefined | null | A7
        • Parameters

          • _: A6

          Returns undefined | null | A7

    • f8: (_: A7) => undefined | null | A8
        • (_: A7): undefined | null | A8
        • Parameters

          • _: A7

          Returns undefined | null | A8

    • f9: (_: A8) => undefined | null | A9
        • (_: A8): undefined | null | A9
        • Parameters

          • _: A8

          Returns undefined | null | A9

    • f10: (_: A9) => undefined | null | R
        • (_: A9): undefined | null | R
        • Parameters

          • _: A9

          Returns undefined | null | R

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

Const compose

  • compose<I, R>(f1: (_: I) => R): (x: I) => R
  • compose<I, A1, R>(f1: (_: A1) => R, f2: (_: I) => A1): (x: I) => R
  • compose<I, A1, A2, R>(f1: (_: A2) => R, f2: (_: A1) => A2, f3: (_: I) => A1): (x: I) => R
  • compose<I, A1, A2, A3, R>(f1: (_: A3) => R, f2: (_: A2) => A3, f3: (_: A1) => A2, f4: (_: I) => A1): (x: I) => R
  • compose<I, A1, A2, A3, A4, R>(f1: (_: A4) => R, f2: (_: A3) => A4, f3: (_: A2) => A3, f4: (_: A1) => A2, f5: (_: I) => A1): (x: I) => R
  • compose<I, A1, A2, A3, A4, A5, R>(f1: (_: A5) => R, f2: (_: A4) => A5, f3: (_: A3) => A4, f4: (_: A2) => A3, f5: (_: A1) => A2, f6: (_: I) => A1): (x: I) => R
  • compose<I, A1, A2, A3, A4, A5, A6, R>(f1: (_: A6) => R, f2: (_: A5) => A6, f3: (_: A4) => A5, f4: (_: A3) => A4, f5: (_: A2) => A3, f6: (_: A1) => A2, f7: (_: I) => A1): (x: I) => R
  • compose<I, A1, A2, A3, A4, A5, A6, A7, R>(f1: (_: A7) => R, f2: (_: A6) => A7, f3: (_: A5) => A6, f4: (_: A4) => A5, f5: (_: A3) => A4, f6: (_: A2) => A3, f7: (_: A1) => A2, f8: (_: I) => A1): (x: I) => R
  • compose<I, A1, A2, A3, A4, A5, A6, A7, A8, R>(f1: (_: A8) => R, f2: (_: A7) => A8, f3: (_: A6) => A7, f4: (_: A5) => A6, f5: (_: A4) => A5, f6: (_: A3) => A4, f7: (_: A2) => A3, f8: (_: A1) => A2, f9: (_: I) => A1): (x: I) => R
  • compose<I, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>(f1: (_: A9) => R, f2: (_: A8) => A9, f3: (_: A7) => A8, f4: (_: A6) => A7, f5: (_: A5) => A6, f6: (_: A4) => A5, f7: (_: A3) => A4, f8: (_: A2) => A3, f9: (_: A1) => A2, f10: (_: I) => A1): (x: I) => R
  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • R

    Parameters

    • f1: (_: I) => R
        • (_: I): R
        • Parameters

          • _: I

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • A1

    • R

    Parameters

    • f1: (_: A1) => R
        • (_: A1): R
        • Parameters

          • _: A1

          Returns R

    • f2: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • A1

    • A2

    • R

    Parameters

    • f1: (_: A2) => R
        • (_: A2): R
        • Parameters

          • _: A2

          Returns R

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • R

    Parameters

    • f1: (_: A3) => R
        • (_: A3): R
        • Parameters

          • _: A3

          Returns R

    • f2: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f3: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f4: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • R

    Parameters

    • f1: (_: A4) => R
        • (_: A4): R
        • Parameters

          • _: A4

          Returns R

    • f2: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f5: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • R

    Parameters

    • f1: (_: A5) => R
        • (_: A5): R
        • Parameters

          • _: A5

          Returns R

    • f2: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f3: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f4: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f5: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f6: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • R

    Parameters

    • f1: (_: A6) => R
        • (_: A6): R
        • Parameters

          • _: A6

          Returns R

    • f2: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f3: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f6: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f7: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • R

    Parameters

    • f1: (_: A7) => R
        • (_: A7): R
        • Parameters

          • _: A7

          Returns R

    • f2: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f3: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f4: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f5: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f6: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f7: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f8: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • R

    Parameters

    • f1: (_: A8) => R
        • (_: A8): R
        • Parameters

          • _: A8

          Returns R

    • f2: (_: A7) => A8
        • (_: A7): A8
        • Parameters

          • _: A7

          Returns A8

    • f3: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f4: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f7: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f8: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f9: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Composes given functions (in the mathematical sense).

    Unlike flow and pipe, functions passed to compose are applied (called) from last to first.

    const f = (x: number): number => x * x;
    const g = (x: number): string => x.toFixed();
    const h = (x: string): boolean => x === '4';
    
    compose(
      h, // 3. true
      g, // 2. 4
      f, // 1. 2
    )(2) // 4. true
    
    // gives same result as
    h(g(f(2))) // true
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • A9

    • R

    Parameters

    • f1: (_: A9) => R
        • (_: A9): R
        • Parameters

          • _: A9

          Returns R

    • f2: (_: A8) => A9
        • (_: A8): A9
        • Parameters

          • _: A8

          Returns A9

    • f3: (_: A7) => A8
        • (_: A7): A8
        • Parameters

          • _: A7

          Returns A8

    • f4: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f5: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f6: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f7: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f8: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f9: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f10: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

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 curryTuple

  • curryTuple<A, B, C>(_: (_: [A, B]) => C): (_: A) => (_: B) => C
  • Transforms the given function of two arguments from "tuple curried" format to curried one.

    const addPair = ([a, b]: [number, number]) => a + b;
    opt(1) // Some(1)
      .map(
        curryTuple(addPair)(4) // same as `(a => b => a + b)(4)`
      ) // Some(5)
    
    see

    uncurryTuple

    Type parameters

    • A

    • B

    • C

    Parameters

    • _: (_: [A, B]) => C
        • (_: [A, B]): C
        • Parameters

          • _: [A, B]

          Returns C

    Returns (_: A) => (_: B) => C

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

        • _: A

        Returns (_: B) => C

          • (_: B): C
          • Parameters

            • _: B

            Returns C

Const curryTuple3

  • curryTuple3<A, B, C, D>(_: (_: [A, B, C]) => D): (_: A) => (_: B) => (_: C) => D
  • Transforms the given function of three arguments from "tuple curried" format to curried one.

    see

    curryTuple

    Type parameters

    • A

    • B

    • C

    • D

    Parameters

    • _: (_: [A, B, C]) => D
        • (_: [A, B, C]): D
        • Parameters

          • _: [A, B, C]

          Returns D

    Returns (_: A) => (_: B) => (_: C) => D

      • (_: A): (_: B) => (_: C) => D
      • Parameters

        • _: A

        Returns (_: B) => (_: C) => D

          • (_: B): (_: C) => D
          • Parameters

            • _: B

            Returns (_: C) => D

              • (_: C): D
              • Parameters

                • _: C

                Returns D

Const curryTuple4

  • curryTuple4<A, B, C, D, E>(_: (_: [A, B, C, D]) => E): (_: A) => (_: B) => (_: C) => (_: D) => E
  • Transforms the given function of four arguments from "tuple curried" format to curried one.

    see

    curryTuple

    Type parameters

    • A

    • B

    • C

    • D

    • E

    Parameters

    • _: (_: [A, B, C, D]) => E
        • (_: [A, B, C, D]): E
        • Parameters

          • _: [A, B, C, D]

          Returns E

    Returns (_: A) => (_: B) => (_: C) => (_: D) => E

      • (_: A): (_: B) => (_: C) => (_: D) => E
      • Parameters

        • _: A

        Returns (_: B) => (_: C) => (_: D) => E

          • (_: B): (_: C) => (_: D) => E
          • Parameters

            • _: B

            Returns (_: C) => (_: D) => E

              • (_: C): (_: D) => E
              • Parameters

                • _: C

                Returns (_: D) => E

                  • (_: D): E
                  • Parameters

                    • _: D

                    Returns E

Const curryTuple5

  • curryTuple5<A, B, C, D, E, F>(_: (_: [A, B, C, D, E]) => F): (_: A) => (_: B) => (_: C) => (_: D) => (_: E) => F
  • Transforms the given function of five arguments from "tuple curried" format to curried one.

    see

    curryTuple

    Type parameters

    • A

    • B

    • C

    • D

    • E

    • F

    Parameters

    • _: (_: [A, B, C, D, E]) => F
        • (_: [A, B, C, D, E]): F
        • Parameters

          • _: [A, B, C, D, E]

          Returns F

    Returns (_: A) => (_: B) => (_: C) => (_: D) => (_: E) => F

      • (_: A): (_: B) => (_: C) => (_: D) => (_: E) => F
      • Parameters

        • _: A

        Returns (_: B) => (_: C) => (_: D) => (_: E) => F

          • (_: B): (_: C) => (_: D) => (_: E) => F
          • Parameters

            • _: B

            Returns (_: C) => (_: D) => (_: E) => F

              • (_: C): (_: D) => (_: E) => F
              • Parameters

                • _: C

                Returns (_: D) => (_: E) => F

                  • (_: D): (_: E) => F
                  • Parameters

                    • _: D

                    Returns (_: E) => F

                      • (_: E): F
                      • Parameters

                        • _: E

                        Returns F

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 flow

  • flow<I, R>(f1: (_: I) => R): (x: I) => R
  • flow<I, A1, R>(f1: (_: I) => A1, f2: (_: A1) => R): (x: I) => R
  • flow<I, A1, A2, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => R): (x: I) => R
  • flow<I, A1, A2, A3, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => R): (x: I) => R
  • flow<I, A1, A2, A3, A4, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => R): (x: I) => R
  • flow<I, A1, A2, A3, A4, A5, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => R): (x: I) => R
  • flow<I, A1, A2, A3, A4, A5, A6, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => R): (x: I) => R
  • flow<I, A1, A2, A3, A4, A5, A6, A7, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => A7, f8: (_: A7) => R): (x: I) => R
  • flow<I, A1, A2, A3, A4, A5, A6, A7, A8, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => A7, f8: (_: A7) => A8, f9: (_: A8) => R): (x: I) => R
  • flow<I, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => A7, f8: (_: A7) => A8, f9: (_: A8) => A9, f10: (_: A9) => R): (x: I) => R
  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • R

    Parameters

    • f1: (_: I) => R
        • (_: I): R
        • Parameters

          • _: I

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • A1

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => R
        • (_: A1): R
        • Parameters

          • _: A1

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • A1

    • A2

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => R
        • (_: A2): R
        • Parameters

          • _: A2

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => R
        • (_: A3): R
        • Parameters

          • _: A3

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => R
        • (_: A4): R
        • Parameters

          • _: A4

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => R
        • (_: A5): R
        • Parameters

          • _: A5

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => R
        • (_: A6): R
        • Parameters

          • _: A6

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f8: (_: A7) => R
        • (_: A7): R
        • Parameters

          • _: A7

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f8: (_: A7) => A8
        • (_: A7): A8
        • Parameters

          • _: A7

          Returns A8

    • f9: (_: A8) => R
        • (_: A8): R
        • Parameters

          • _: A8

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

  • Takes functions and builds a function which consecutively calls each given function with a result from a previous one. Similar to Opt.pipe, but doesn't take input directly, instead returns a function which can be called repeatedly with different inputs.

    flow( // 1. 63
      add1, // 2. 64
      Math.sqrt, // 3. 8
    )(63), // 4. 8
    
    // gives same result as
    Math.sqrt(add1(63)) // 8
    
    const f = flow(add1, Math.sqrt); // (_: number) => number
    f(63); // 8
    f(3);  // 2
    

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • A9

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f8: (_: A7) => A8
        • (_: A7): A8
        • Parameters

          • _: A7

          Returns A8

    • f9: (_: A8) => A9
        • (_: A8): A9
        • Parameters

          • _: A8

          Returns A9

    • f10: (_: A9) => R
        • (_: A9): R
        • Parameters

          • _: A9

          Returns R

    Returns (x: I) => R

      • (x: I): R
      • Parameters

        • x: I

        Returns R

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 head

  • head<T>(x: T[] | Opt<T[]>): Opt<T>
  • Same as Opt.head, but also supports unwrapped arrays.

    see

    Opt.head

    Type parameters

    • T

    Parameters

    • x: T[] | Opt<T[]>

    Returns Opt<T>

Const id

  • id<T>(x: T): T
  • Identity function.

    id(1) // 1
    id(null) // null
    

    Type parameters

    • T

    Parameters

    • x: T

    Returns T

Const isEmpty

  • isEmpty(x: undefined | null | string | number | object | unknown[] | Opt<unknown> | Map<unknown, unknown> | Set<unknown>): boolean
  • Similar to isEmpty from lodash, but also supports Opts. Returns true for None, [], null, undefined, empty map, empty set, empty object, '' and NaN. Otherwise returns false.

    example
    isEmpty(opt(1)) // false
    isEmpty(opt(null)) // true
    isEmpty([]) // true
    isEmpty([1]) // false
    isEmpty(null) // true
    isEmpty('') // true
    

    Parameters

    • x: undefined | null | string | number | object | unknown[] | Opt<unknown> | Map<unknown, unknown> | Set<unknown>

    Returns boolean

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 last

  • last<T>(x: T[] | Opt<T[]>): Opt<T>
  • Same as Opt.last, but also supports unwrapped arrays.

    see

    Opt.last

    Type parameters

    • T

    Parameters

    • x: T[] | Opt<T[]>

    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 mapFlow

  • mapFlow<I, R>(f1: (_: I) => R): (x: Opt<I>) => Opt<R>
  • mapFlow<I, A1, R>(f1: (_: I) => A1, f2: (_: A1) => R): (x: Opt<I>) => Opt<R>
  • mapFlow<I, A1, A2, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => R): (x: Opt<I>) => Opt<R>
  • mapFlow<I, A1, A2, A3, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => R): (x: Opt<I>) => Opt<R>
  • mapFlow<I, A1, A2, A3, A4, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => R): (x: Opt<I>) => Opt<R>
  • mapFlow<I, A1, A2, A3, A4, A5, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => R): (x: Opt<I>) => Opt<R>
  • mapFlow<I, A1, A2, A3, A4, A5, A6, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => R): (x: Opt<I>) => Opt<R>
  • mapFlow<I, A1, A2, A3, A4, A5, A6, A7, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => A7, f8: (_: A7) => R): (x: Opt<I>) => Opt<R>
  • mapFlow<I, A1, A2, A3, A4, A5, A6, A7, A8, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => A7, f8: (_: A7) => A8, f9: (_: A8) => R): (x: Opt<I>) => Opt<R>
  • mapFlow<I, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>(f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => A7, f8: (_: A7) => A8, f9: (_: A8) => A9, f10: (_: A9) => R): (x: Opt<I>) => Opt<R>
  • Type parameters

    • I

    • R

    Parameters

    • f1: (_: I) => R
        • (_: I): R
        • Parameters

          • _: I

          Returns R

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

  • Type parameters

    • I

    • A1

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => R
        • (_: A1): R
        • Parameters

          • _: A1

          Returns R

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

  • Type parameters

    • I

    • A1

    • A2

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => R
        • (_: A2): R
        • Parameters

          • _: A2

          Returns R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => R
        • (_: A3): R
        • Parameters

          • _: A3

          Returns R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => R
        • (_: A4): R
        • Parameters

          • _: A4

          Returns R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => R
        • (_: A5): R
        • Parameters

          • _: A5

          Returns R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => R
        • (_: A6): R
        • Parameters

          • _: A6

          Returns R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f8: (_: A7) => R
        • (_: A7): R
        • Parameters

          • _: A7

          Returns R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f8: (_: A7) => A8
        • (_: A7): A8
        • Parameters

          • _: A7

          Returns A8

    • f9: (_: A8) => R
        • (_: A8): R
        • Parameters

          • _: A8

          Returns R

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

  • Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • A9

    • R

    Parameters

    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f8: (_: A7) => A8
        • (_: A7): A8
        • Parameters

          • _: A7

          Returns A8

    • f9: (_: A8) => A9
        • (_: A8): A9
        • Parameters

          • _: A8

          Returns A9

    • f10: (_: A9) => R
        • (_: A9): R
        • Parameters

          • _: A9

          Returns R

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

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 pipe

  • pipe<I, R>(x: I, f1: (_: I) => R): R
  • pipe<I, A1, R>(x: I, f1: (_: I) => A1, f2: (_: A1) => R): R
  • pipe<I, A1, A2, R>(x: I, f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => R): R
  • pipe<I, A1, A2, A3, R>(x: I, f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => R): R
  • pipe<I, A1, A2, A3, A4, R>(x: I, f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => R): R
  • pipe<I, A1, A2, A3, A4, A5, R>(x: I, f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => R): R
  • pipe<I, A1, A2, A3, A4, A5, A6, R>(x: I, f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => R): R
  • pipe<I, A1, A2, A3, A4, A5, A6, A7, R>(x: I, f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => A7, f8: (_: A7) => R): R
  • pipe<I, A1, A2, A3, A4, A5, A6, A7, A8, R>(x: I, f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => A7, f8: (_: A7) => A8, f9: (_: A8) => R): R
  • pipe<I, A1, A2, A3, A4, A5, A6, A7, A8, A9, R>(x: I, f1: (_: I) => A1, f2: (_: A1) => A2, f3: (_: A2) => A3, f4: (_: A3) => A4, f5: (_: A4) => A5, f6: (_: A5) => A6, f7: (_: A6) => A7, f8: (_: A7) => A8, f9: (_: A8) => A9, f10: (_: A9) => R): R
  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • R

    Parameters

    • x: I
    • f1: (_: I) => R
        • (_: I): R
        • Parameters

          • _: I

          Returns R

    Returns R

  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • A1

    • R

    Parameters

    • x: I
    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => R
        • (_: A1): R
        • Parameters

          • _: A1

          Returns R

    Returns R

  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • A1

    • A2

    • R

    Parameters

    • x: I
    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => R
        • (_: A2): R
        • Parameters

          • _: A2

          Returns R

    Returns R

  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • A1

    • A2

    • A3

    • R

    Parameters

    • x: I
    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => R
        • (_: A3): R
        • Parameters

          • _: A3

          Returns R

    Returns R

  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • R

    Parameters

    • x: I
    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => R
        • (_: A4): R
        • Parameters

          • _: A4

          Returns R

    Returns R

  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • R

    Parameters

    • x: I
    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => R
        • (_: A5): R
        • Parameters

          • _: A5

          Returns R

    Returns R

  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • R

    Parameters

    • x: I
    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => R
        • (_: A6): R
        • Parameters

          • _: A6

          Returns R

    Returns R

  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • R

    Parameters

    • x: I
    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f8: (_: A7) => R
        • (_: A7): R
        • Parameters

          • _: A7

          Returns R

    Returns R

  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • R

    Parameters

    • x: I
    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f8: (_: A7) => A8
        • (_: A7): A8
        • Parameters

          • _: A7

          Returns A8

    • f9: (_: A8) => R
        • (_: A8): R
        • Parameters

          • _: A8

          Returns R

    Returns R

  • Similar to Opt.pipe, but the first argument is the input. Supports arbitrary input type, not just Opt.

    see

    Opt.pipe

    Type parameters

    • I

    • A1

    • A2

    • A3

    • A4

    • A5

    • A6

    • A7

    • A8

    • A9

    • R

    Parameters

    • x: I
    • f1: (_: I) => A1
        • (_: I): A1
        • Parameters

          • _: I

          Returns A1

    • f2: (_: A1) => A2
        • (_: A1): A2
        • Parameters

          • _: A1

          Returns A2

    • f3: (_: A2) => A3
        • (_: A2): A3
        • Parameters

          • _: A2

          Returns A3

    • f4: (_: A3) => A4
        • (_: A3): A4
        • Parameters

          • _: A3

          Returns A4

    • f5: (_: A4) => A5
        • (_: A4): A5
        • Parameters

          • _: A4

          Returns A5

    • f6: (_: A5) => A6
        • (_: A5): A6
        • Parameters

          • _: A5

          Returns A6

    • f7: (_: A6) => A7
        • (_: A6): A7
        • Parameters

          • _: A6

          Returns A7

    • f8: (_: A7) => A8
        • (_: A7): A8
        • Parameters

          • _: A7

          Returns A8

    • f9: (_: A8) => A9
        • (_: A8): A9
        • Parameters

          • _: A8

          Returns A9

    • f10: (_: A9) => R
        • (_: A9): R
        • Parameters

          • _: A9

          Returns R

    Returns R

Const print

  • print(tag?: string): <T>(x: T) => T
  • Same as Opt.print, but supports arbitrary argument types.

    see

    Opt.print

    Parameters

    • Optional tag: string

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

      • <T>(x: T): T
      • Type parameters

        • T

        Parameters

        • x: T

        Returns 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 swap

  • swap<U>(newValue: U): <T>(x: Opt<T>) => Opt<U>
  • see

    Opt.swap

    Type parameters

    • U

    Parameters

    • newValue: U

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

      • Type parameters

        • T

        Parameters

        Returns Opt<U>

Const toArray

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

    • T

    Parameters

    Returns [] | [T]

Const uncurryTuple

  • uncurryTuple<A, B, C>(_: (_: A) => (_: B) => C): (_: [A, B]) => C
  • Transforms the given function of two arguments from curried format to "tuple curried" which can be used with Opt.zip.

    const sub = (x: number) => (y: number) => x - y;
    opt(4) // Some(4)
      .zip(opt(1)) // Some([4, 1])
      .map(uncurryTuple(sub)) // Some(3)
    
    see

    curryTuple

    Type parameters

    • A

    • B

    • C

    Parameters

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

          • _: A

          Returns (_: B) => C

            • (_: B): C
            • Parameters

              • _: B

              Returns C

    Returns (_: [A, B]) => C

      • (_: [A, B]): C
      • Parameters

        • _: [A, B]

        Returns C

Const uncurryTuple3

  • uncurryTuple3<A, B, C, D>(_: (_: A) => (_: B) => (_: C) => D): (_: [A, B, C]) => D
  • Transforms the given function of three arguments from curried format to "tuple curried" which can be used with Opt.zip3.

    see

    uncurryTuple

    Type parameters

    • A

    • B

    • C

    • D

    Parameters

    • _: (_: A) => (_: B) => (_: C) => D
        • (_: A): (_: B) => (_: C) => D
        • Parameters

          • _: A

          Returns (_: B) => (_: C) => D

            • (_: B): (_: C) => D
            • Parameters

              • _: B

              Returns (_: C) => D

                • (_: C): D
                • Parameters

                  • _: C

                  Returns D

    Returns (_: [A, B, C]) => D

      • (_: [A, B, C]): D
      • Parameters

        • _: [A, B, C]

        Returns D

Const uncurryTuple4

  • uncurryTuple4<A, B, C, D, E>(_: (_: A) => (_: B) => (_: C) => (_: D) => E): (_: [A, B, C, D]) => E
  • Transforms the given function of four arguments from curried format to "tuple curried" which can be used with Opt.zip4.

    see

    uncurryTuple

    Type parameters

    • A

    • B

    • C

    • D

    • E

    Parameters

    • _: (_: A) => (_: B) => (_: C) => (_: D) => E
        • (_: A): (_: B) => (_: C) => (_: D) => E
        • Parameters

          • _: A

          Returns (_: B) => (_: C) => (_: D) => E

            • (_: B): (_: C) => (_: D) => E
            • Parameters

              • _: B

              Returns (_: C) => (_: D) => E

                • (_: C): (_: D) => E
                • Parameters

                  • _: C

                  Returns (_: D) => E

                    • (_: D): E
                    • Parameters

                      • _: D

                      Returns E

    Returns (_: [A, B, C, D]) => E

      • (_: [A, B, C, D]): E
      • Parameters

        • _: [A, B, C, D]

        Returns E

Const uncurryTuple5

  • uncurryTuple5<A, B, C, D, E, F>(_: (_: A) => (_: B) => (_: C) => (_: D) => (_: E) => F): (_: [A, B, C, D, E]) => F
  • Transforms the given function of five arguments from curried format to "tuple curried" which can be used with Opt.zip5.

    see

    uncurryTuple

    Type parameters

    • A

    • B

    • C

    • D

    • E

    • F

    Parameters

    • _: (_: A) => (_: B) => (_: C) => (_: D) => (_: E) => F
        • (_: A): (_: B) => (_: C) => (_: D) => (_: E) => F
        • Parameters

          • _: A

          Returns (_: B) => (_: C) => (_: D) => (_: E) => F

            • (_: B): (_: C) => (_: D) => (_: E) => F
            • Parameters

              • _: B

              Returns (_: C) => (_: D) => (_: E) => F

                • (_: C): (_: D) => (_: E) => F
                • Parameters

                  • _: C

                  Returns (_: D) => (_: E) => F

                    • (_: D): (_: E) => F
                    • Parameters

                      • _: D

                      Returns (_: E) => F

                        • (_: E): F
                        • Parameters

                          • _: E

                          Returns F

    Returns (_: [A, B, C, D, E]) => F

      • (_: [A, B, C, D, E]): F
      • Parameters

        • _: [A, B, C, D, E]

        Returns F

Const zip

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

    example
    const formatAddress =
      (streetName?: string, streetNumber?: string): string =>
        zip(opt(streetName))(opt(streetNumber)).map(join(' ')).orElse('');
    formatAddress('Strawberry', '12') // 'Strawberry 12'
    formatAddress('Strawberry', undefined) // ''
    formatAddress(undefined, '12') // ''
    formatAddress(undefined, undefined) // ''
    
    see

    Opt.zip

    Type parameters

    • T

    Parameters

    • other: Opt<T>

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

      • Type parameters

        • U

        Parameters

        Returns Opt<[T, U]>

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

    example
    const formatAddress =
      (streetName?: string, streetNumber?: string): string =>
        zip(opt(streetName))(opt(streetNumber)).map(join(' ')).orElse('');
    formatAddress('Strawberry', '12') // 'Strawberry 12'
    formatAddress('Strawberry', undefined) // ''
    formatAddress(undefined, '12') // ''
    formatAddress(undefined, undefined) // ''
    
    see

    Opt.zip

    Type parameters

    • T

    Parameters

    • other: T[]

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

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

        • U

        Parameters

        • x: U[]

        Returns [T, U][]

Const zip3

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

    Opt.zip3

    Type parameters

    • T

    Parameters

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

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

        • A

        Parameters

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

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

            • B

            Parameters

            Returns Opt<[T, A, B]>

Const zip4

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

    Opt.zip4

    Type parameters

    • T

    Parameters

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

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

        • A

        Parameters

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

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

            • B

            Parameters

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

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

                • C

                Parameters

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

Const zip5

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

    Opt.zip5

    Type parameters

    • T

    Parameters

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

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

        • A

        Parameters

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

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

            • B

            Parameters

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

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

                • C

                Parameters

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

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

                    • D

                    Parameters

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

Const zipToOptArray

  • zipToOptArray<A, B>(xs: [A, B]): Opt<[NonNullable<A>, NonNullable<B>]>
  • zipToOptArray<A, B, C>(xs: [A, B, C]): Opt<[NonNullable<A>, NonNullable<B>, NonNullable<C>]>
  • zipToOptArray<A, B, C, D>(xs: [A, B, C, D]): Opt<[NonNullable<A>, NonNullable<B>, NonNullable<C>, NonNullable<D>]>
  • zipToOptArray<A, B, C, D, E>(xs: [A, B, C, D, E]): Opt<[NonNullable<A>, NonNullable<B>, NonNullable<C>, NonNullable<D>, NonNullable<E>]>
  • Takes a tuple, wraps each element in Opt and applies appropriate Opt.zip function.

    example
    zipToOptArray([1, null, '', 7, false]) // None: Opt<[number, boolean, string, number, boolean]>
    zipToOptArray([1, true, '', 7, false]) // Some<[1, true, '', 7, false]>: Opt<[number, boolean, string, number, boolean]>
    

    Useful as a replacement to zip* functions when construction of Opts happens in parameters of the function.

    zipToOptArray([1, null, '', 7, false])
    // is same as
    zip5(opt(1), opt(null), opt(''), opt(7), opt(false))
    

    Type parameters

    • A

    • B

    Parameters

    • xs: [A, B]

    Returns Opt<[NonNullable<A>, NonNullable<B>]>

  • Takes a tuple, wraps each element in Opt and applies appropriate Opt.zip function.

    example
    zipToOptArray([1, null, '', 7, false]) // None: Opt<[number, boolean, string, number, boolean]>
    zipToOptArray([1, true, '', 7, false]) // Some<[1, true, '', 7, false]>: Opt<[number, boolean, string, number, boolean]>
    

    Useful as a replacement to zip* functions when construction of Opts happens in parameters of the function.

    zipToOptArray([1, null, '', 7, false])
    // is same as
    zip5(opt(1), opt(null), opt(''), opt(7), opt(false))
    

    Type parameters

    • A

    • B

    • C

    Parameters

    • xs: [A, B, C]

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

  • Takes a tuple, wraps each element in Opt and applies appropriate Opt.zip function.

    example
    zipToOptArray([1, null, '', 7, false]) // None: Opt<[number, boolean, string, number, boolean]>
    zipToOptArray([1, true, '', 7, false]) // Some<[1, true, '', 7, false]>: Opt<[number, boolean, string, number, boolean]>
    

    Useful as a replacement to zip* functions when construction of Opts happens in parameters of the function.

    zipToOptArray([1, null, '', 7, false])
    // is same as
    zip5(opt(1), opt(null), opt(''), opt(7), opt(false))
    

    Type parameters

    • A

    • B

    • C

    • D

    Parameters

    • xs: [A, B, C, D]

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

  • Takes a tuple, wraps each element in Opt and applies appropriate Opt.zip function.

    example
    zipToOptArray([1, null, '', 7, false]) // None: Opt<[number, boolean, string, number, boolean]>
    zipToOptArray([1, true, '', 7, false]) // Some<[1, true, '', 7, false]>: Opt<[number, boolean, string, number, boolean]>
    

    Useful as a replacement to zip* functions when construction of Opts happens in parameters of the function.

    zipToOptArray([1, null, '', 7, false])
    // is same as
    zip5(opt(1), opt(null), opt(''), opt(7), opt(false))
    

    Type parameters

    • A

    • B

    • C

    • D

    • E

    Parameters

    • xs: [A, B, C, D, E]

    Returns Opt<[NonNullable<A>, NonNullable<B>, NonNullable<C>, NonNullable<D>, NonNullable<E>]>

Generated using TypeDoc