Options
All
  • Public
  • Public/Protected
  • All
Menu

Module "getter"

Index

Functions

defGetter

  • defGetter<T>(path: Path0): Fn<T, T>
  • defGetter<T, A>(path: Path1<T, A>): Fn<T, OptPathVal<T, [A]>>
  • defGetter<T, A, B>(path: Path2<T, A, B>): Fn<T, OptPathVal<T, [A, B]>>
  • defGetter<T, A, B, C>(path: Path3<T, A, B, C>): Fn<T, OptPathVal<T, [A, B, C]>>
  • defGetter<T, A, B, C, D>(path: Path4<T, A, B, C, D>): Fn<T, OptPathVal<T, [A, B, C, D]>>
  • defGetter<T, A, B, C, D, E>(path: Path5<T, A, B, C, D, E>): Fn<T, OptPathVal<T, [A, B, C, D, E]>>
  • defGetter<T, A, B, C, D, E, F>(path: Path6<T, A, B, C, D, E, F>): Fn<T, OptPathVal<T, [A, B, C, D, E, F]>>
  • defGetter<T, A, B, C, D, E, F, G>(path: Path7<T, A, B, C, D, E, F, G>): Fn<T, OptPathVal<T, [A, B, C, D, E, F, G]>>
  • defGetter<T, A, B, C, D, E, F, G, H>(path: Path8<T, A, B, C, D, E, F, G, H>): Fn<T, OptPathVal<T, [A, B, C, D, E, F, G, H]>>
  • defGetter<T, A, B, C, D, E, F, G, H>(path: DeepPath<T, A, B, C, D, E, F, G, H>): Fn<T, any>
  • Creates getter function for given nested lookup path. Returns function which accepts single object and returns value at given path.

    remarks

    Optimized fast execution paths are provided for path lengths <= 4. Only the first 8 path levels are type checked.

    Supports any []-indexable data structure (arrays, objects, strings).

    If any intermediate key is not present in the given obj, further descent stops and the function returns undefined.

    If path is an empty array, the returned getter will simply return the given state arg (aka identity function).

    Also see: defGetterUnsafe, getIn, getInUnsafe

    example
    interface Foo {
      a: { b: { c: number; } }
    }
    
    // fully type checked getter
    g = defGetter<Foo, "a", "b", "c">(["a","b","c"]);
    
    // error (wrong `d` key)
    g = defGetter<Foo, "a", "b", "d">(["a","b","d"]);
    
    g({ a: { b: { c: 23} } }); // 23
    g({ x: 23 }); // error
    g(); // error

    Type parameters

    • T

    Parameters

    • path: Path0

      -

    Returns Fn<T, T>

  • Type parameters

    • T

    • A

    Parameters

    • path: Path1<T, A>

    Returns Fn<T, OptPathVal<T, [A]>>

  • Type parameters

    • T

    • A

    • B

    Parameters

    • path: Path2<T, A, B>

    Returns Fn<T, OptPathVal<T, [A, B]>>

  • Type parameters

    • T

    • A

    • B

    • C

    Parameters

    • path: Path3<T, A, B, C>

    Returns Fn<T, OptPathVal<T, [A, B, C]>>

  • Type parameters

    • T

    • A

    • B

    • C

    • D

    Parameters

    • path: Path4<T, A, B, C, D>

    Returns Fn<T, OptPathVal<T, [A, B, C, D]>>

  • Type parameters

    • T

    • A

    • B

    • C

    • D

    • E

    Parameters

    • path: Path5<T, A, B, C, D, E>

    Returns Fn<T, OptPathVal<T, [A, B, C, D, E]>>

  • Type parameters

    • T

    • A

    • B

    • C

    • D

    • E

    • F

    Parameters

    • path: Path6<T, A, B, C, D, E, F>

    Returns Fn<T, OptPathVal<T, [A, B, C, D, E, F]>>

  • Type parameters

    • T

    • A

    • B

    • C

    • D

    • E

    • F

    • G

    Parameters

    • path: Path7<T, A, B, C, D, E, F, G>

    Returns Fn<T, OptPathVal<T, [A, B, C, D, E, F, G]>>

  • Type parameters

    • T

    • A

    • B

    • C

    • D

    • E

    • F

    • G

    • H

    Parameters

    • path: Path8<T, A, B, C, D, E, F, G, H>

    Returns Fn<T, OptPathVal<T, [A, B, C, D, E, F, G, H]>>

  • Type parameters

    • T

    • A

    • B

    • C

    • D

    • E

    • F

    • G

    • H

    Parameters

    • path: DeepPath<T, A, B, C, D, E, F, G, H>

    Returns Fn<T, any>

Const defGetterUnsafe

  • defGetterUnsafe<T>(path: Path): Fn<any, T | undefined>
  • Unchecked version of defGetter.

    remarks

    The type parameter T can be used to indicate the type of the nested value to be retrieved (default: any).

    Also see: getIn, getInUnsafe

    example
    const g = defGetterUnsafe("a.b.c");
    
    g({ a: { b: { c: 23} } }) // 23
    g({ x: 23 }) // undefined
    g() // undefined

    Type parameters

    • T

    Parameters

    • path: Path

      -

    Returns Fn<any, T | undefined>

Generated using TypeDoc