@redux-ts-starter-kit/slice
Version:
reduce redux boilerplate
21 lines (20 loc) • 2.3 kB
TypeScript
import type { NestedObject, Getter, GetArrayLength } from './types';
export declare const IS_PRODUCTION: boolean;
export declare function makeTypeSafeSelector<P extends string[]>(slice: '', ...paths: P): {
<V>(): (object: NestedObject<P, 0, V>) => V;
bindToInput: <O extends NestedObject<P, 0, any>>() => (object: O) => Getter<P, O>;
};
export declare function makeTypeSafeSelector<P extends string[]>(...paths: P): {
<V>(): (object: NestedObject<P, 0, V>) => V;
bindToInput: <O extends NestedObject<P, 0, any>>() => (object: O) => Getter<P, O>;
};
export declare const createGetter: <P extends string[]>(...paths: P) => <O extends 0 extends GetArrayLength<P> ? any : { [K in P[0]]: 1 extends GetArrayLength<P> ? any : { [K_1 in P[1]]: 2 extends GetArrayLength<P> ? any : { [K_2 in P[2]]: 3 extends GetArrayLength<P> ? any : { [K_3 in P[3]]: 4 extends GetArrayLength<P> ? any : { [K_4 in P[4]]: 5 extends GetArrayLength<P> ? any : { [K_5 in P[5]]: 6 extends GetArrayLength<P> ? any : { [K_6 in P[6]]: 7 extends GetArrayLength<P> ? any : { [K_7 in P[7]]: 8 extends GetArrayLength<P> ? any : { [K_8 in P[8]]: 9 extends GetArrayLength<P> ? any : { [K_9 in P[9]]: 10 extends GetArrayLength<P> ? any : { [K_10 in P[10]]: 11 extends GetArrayLength<P> ? any : any; }; }; }; }; }; }; }; }; }; }; }>(object: O) => Getter<P, O>;
/**
* Alias for `getter`, The argument order is simply switched, `object` before `paths`;
*
* @template O
* @template P
* @param {O} object
* @param {...P} paths
*/
export declare const get: <O extends 0 extends GetArrayLength<P> ? any : { [K in P[0]]: 1 extends GetArrayLength<P> ? any : { [K_1 in P[1]]: 2 extends GetArrayLength<P> ? any : { [K_2 in P[2]]: 3 extends GetArrayLength<P> ? any : { [K_3 in P[3]]: 4 extends GetArrayLength<P> ? any : { [K_4 in P[4]]: 5 extends GetArrayLength<P> ? any : { [K_5 in P[5]]: 6 extends GetArrayLength<P> ? any : { [K_6 in P[6]]: 7 extends GetArrayLength<P> ? any : { [K_7 in P[7]]: 8 extends GetArrayLength<P> ? any : { [K_8 in P[8]]: 9 extends GetArrayLength<P> ? any : { [K_9 in P[9]]: 10 extends GetArrayLength<P> ? any : { [K_10 in P[10]]: 11 extends GetArrayLength<P> ? any : any; }; }; }; }; }; }; }; }; }; }; }, P extends readonly string[] | string[]>(object: O, ...paths: P) => Getter<P, O>;