1.0.3 • Published 4 years ago
dva-type v1.0.3
dva-type
安装
npm i dva-type —save-dev
说明
基于 TypeScript 4.1 版本的 Template Literal Types 特性,实现 dva models 的完整类型推导和提示。
传入项目的 models 类型定义,返回 state、actions的类型定义。
state类型提示
action type类型提示
action payload类型推断
使用
Example
定义单个
Model类型(注意Model、Effect不是从dva中导入的)import { Effect, Model } from 'dva-type' interface ListModel extends Model { state: { list: any[] } effects: { // 定义effect 传入 payload 类型 getList: Effect<number> // 不需要 payload 的 effect getInfo: Effect } }定义项目中所有
Model的集合(使用type而不是interface)// 使用 type 定义 models,将项目中的所有 model 进行收集 type Models = { list: ListModel info: InfoModel // ... }将
Models传入ResolverModels获取state和actions的类型import { ResolverModels } from 'dva-type' type State = ResolverModels<Models>['state'] type Actions = ResolverModels<Models>['actions']使用
// hooks useSelector<State>() const dispatch = useDispatch<(action: Actions) => any>() // class const mapStateToProps = (state: State) => {} interface Props { dispatch: (action: Actions) => any }