typesafe-actions
Version:
Typesafe Action Creators for Redux / Flux Architectures (in TypeScript)
18 lines (17 loc) • 941 B
TypeScript
import { TypeConstant, ActionCreatorBuilder } from '../type-helpers';
/** @private */
export declare type ActionBuilderMap<TType extends TypeConstant, TActionProps extends any, TPayloadArg extends any = undefined, TMetaArg extends any = undefined> = [TMetaArg] extends [undefined] ? [TPayloadArg] extends [undefined] ? () => {
type: TType;
} & TActionProps : (payload: TPayloadArg) => {
type: TType;
} & TActionProps : (payload: TPayloadArg, meta: TMetaArg) => {
type: TType;
} & TActionProps;
export interface ActionBuilder<T extends TypeConstant> {
<P = undefined, M = undefined>(): ActionCreatorBuilder<T, P, M>;
map<R, P = undefined, M = undefined>(fn: (payload: P, meta: M) => R): ActionBuilderMap<T, R, P, M>;
}
/**
* @description create an action-creator of a given function that contains hidden "type" metadata
*/
export declare function createStandardAction<T extends TypeConstant>(type: T): ActionBuilder<T>;