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>
Type parameters
Parameters
Returns Fn<T, T>
Type parameters
Parameters
Returns Fn<T, OptPathVal<T, [A]>>
Type parameters
Parameters
Returns Fn<T, OptPathVal<T, [A, B]>>
Type parameters
Parameters
Returns Fn<T, OptPathVal<T, [A, B, C]>>
Type parameters
Parameters
path: Path4<T, A, B, C, D>
Returns Fn<T, OptPathVal<T, [A, B, C, D]>>
Type parameters
Parameters
path: Path5<T, A, B, C, D, E>
Returns Fn<T, OptPathVal<T, [A, B, C, D, E]>>
Type parameters
Parameters
path: Path6<T, A, B, C, D, E, F>
Returns Fn<T, OptPathVal<T, [A, B, C, D, E, F]>>
Type parameters
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
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
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>
Type parameters
Parameters
Returns Fn<any, T | undefined>
Creates getter function for given nested lookup path. Returns function which accepts single object and returns value at given path.
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
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