UNPKG

minh-custom-hooks-release

Version:

Đây là custom hooks được viết bởi hoanggminh2702, bao gồm:

14 lines (13 loc) 792 B
type B<T> = T extends string ? T : never; type RemoveFirstElement<B extends any[]> = B extends [] ? [] : B extends [unknown, ...infer S] ? S : never; export default function actionCreators<TPrefix extends string, TInitState extends any, TActions extends Record<string, (...args: [state: TInitState, ...any[]]) => TInitState>>(prefix: TPrefix, initState: TInitState, actions: TActions): { reducer: (state: TInitState | undefined, action: { type: `${TPrefix}/${B<keyof TActions>}`; payload?: any; }) => TInitState; generateActions: { [index in B<keyof TActions>]: (...args: [...RemoveFirstElement<Parameters<TActions[index]>>]) => { type: `${TPrefix}/${index}`; payload?: [...RemoveFirstElement<Parameters<TActions[index]>>]; }; }; }; export {};