UNPKG

dva-toolkit

Version:

A great dva typescript support toolkit inspired by @redux/toolkit

51 lines (50 loc) 1.43 kB
import type { DvaSliceCaseEffects } from './effects'; import type { Model, SubscriptionsMapObject } from 'dva'; import type { DvaSliceCaseReducers, ValidateDvaSliceCaseReducers } from './reducers'; import type { DvaCaseAction } from './actions'; /** * construct dva model config * * @public */ export declare type CreateDvaSliceOption<State = any, CR extends DvaSliceCaseReducers<State> = DvaSliceCaseReducers<State>, CE extends DvaSliceCaseEffects = DvaSliceCaseEffects, Name extends string = string> = { /** * dva namespace */ namespace: Name; /** * dva state */ state?: State; /** * dva reducer list */ reducers?: ValidateDvaSliceCaseReducers<State, CR>; /** * dva(saga) effect list */ effects?: CE; /** * dva(route) subscription list */ subscriptions?: SubscriptionsMapObject; }; /** * dva slice result, `model` is dva model, `action` is typed action generator * * @public */ export declare type DvaSlice<State = any, CR extends DvaSliceCaseReducers<State> = DvaSliceCaseReducers<State>, CE extends DvaSliceCaseEffects = DvaSliceCaseEffects> = { /** * dva model */ model: Model; /** * generated actions */ action: DvaCaseAction<CR, CE>; /** * init state, won't change, only used for type deduce */ initState?: State; };