@gongt/ts-stl-client
Version:
29 lines (28 loc) • 1.37 kB
TypeScript
import { Action } from "redux";
import { IVirtualStoreConstructor } from "./virtual-store";
export declare type IAData = any;
export interface IActionData<IData extends IAData> {
payload?: IData;
virtualStorage?: string;
}
export interface IAction<IData extends IAData> extends IActionData<IData>, Action {
}
export interface IReducer<IData extends IAData, ValueInterface> {
(state: ValueInterface, action: ReduxAction<IData, ValueInterface>): ValueInterface | void;
}
export interface ISingleReducer<ValueInterface, IData extends IAData> {
(state: ValueInterface, action: IData, rawAction: IAction<IData>): ValueInterface | void;
displayName?: string;
}
export interface IReduxActionConstructor<IData extends IAData, ValueInterface = void> {
new (payload: IData, virtualStore?: IVirtualStoreConstructor<any>): ReduxAction<IData, ValueInterface>;
}
export declare abstract class ReduxAction<IData extends IAData, VI = void> implements IAction<IData> {
readonly type: string;
readonly payload: IData;
readonly virtualStorage?: string;
constructor(payload: IData, VirtualStore?: IVirtualStoreConstructor<VI> | '*');
static is(act: IAction<any>): boolean;
static compare<VI>(act: IAction<any>, Action: IReduxActionConstructor<any, VI>, VirtualStore?: IVirtualStoreConstructor<VI>): boolean;
toJSON(): IAction<IData>;
}