关于redux:redux中使用TS每次都要定义一遍类型

umi架构下:ts我的项目中redux定义module每次都要写一遍类型定义麻烦得很

typing文件夹下创立Redux.d.ts申明文件

import type { Effect, Subscription, ImmerReducer } from 'umi';

declare module MyRedux {
  // model
  type Models<T> = {
    namespace?: string;
    state: T;
    effects: Record<string, Effect>;
    reducers: Record<string, ImmerReducer<T>>;
    subscriptions?: Record<string, Subscription>;
  };
}
// 导出成模块,再全局导出MyRedux,这样应用就不必再import type { Redux } from '@/typings/redux'; 了
export = MyRedux; 

// 因为应用了import,此文件变成部分模块,其余中央应用只能import导入(import type { Redux } from '@/typings/redux';)能力应用
export as namespace MyRedux;

如何应用
models文件夹下创立staff.ts

type StaffSettingState = {
  staff: Record<string, never>; 
};

const StaffSettingsModel: MyRedux.Models<StaffSettingState> = {
  namespace: 'staffSettingsModel',
  state: {
    staff: {}
  },
  effects: {},
  reducers: {},
};

export default StaffSettingsModel;

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理