react-redux-methods
Version:
A lightweight react-redux toolkit for writing strong-typed, minimal code redux boilerplate.
13 lines (12 loc) • 765 B
TypeScript
import type { Dispatch, AnyAction } from 'redux';
type TCreateDispatchFn<A extends Record<string, (...args: any[]) => any>> = <T extends keyof A>(type: T, ...args: Parameters<A[T]>) => void;
export declare const createDispatch: <D extends Dispatch<AnyAction>, A extends Record<string, (...args: any[]) => any>>(dispatch: D, action: A) => TCreateDispatchFn<A>;
type MapDispatchGroupParam<T> = {
[key: string]: keyof T;
};
type MapDispatchGroupResponse<T, A extends MapDispatchGroupParam<T>> = {
[P in keyof A]: T[A[P]];
};
type TCreateGroupDispatchFn<A> = <K extends keyof A, AT extends Record<string, K>>(actionTypes: AT) => MapDispatchGroupResponse<A, AT>;
export declare const createGroupDispatch: <A>(actions: A) => TCreateGroupDispatchFn<A>;
export {};