UNPKG

typesafe-actions

Version:

Typesafe Action Creators for Redux / Flux Architectures (in TypeScript)

18 lines (17 loc) 941 B
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>;