TypeScript redux-persist正确的操作类型REHYDRATE

时间:2019-05-29 08:18:46

标签: typescript redux redux-persist

我有基于React + Redux的打字稿项目,其中Redux持续存在。我试图找到从redux-persist正确键入REHYDATE action的方法。通过常规操作,我正在使用react-redux文档中所述的模式:

interface IEditSuccess extends Action<CustomActionTypes.EDIT_SUCCESS> {
    edited: IEvent;
}
type IEditFailure = Action<CustomActionTypes.EDIT_FAILURE>;

export type CustomActions = IEditSuccess | IEditFailure;

它工作得很好,但是当我在redux-persist的reducer中使用REHYDATE动作时出现了一个问题-CustomActions中显然没有包含它。我发现有效的方法是向导出的CustomActions类型添加另一个操作类型:

interface IPersistorAction extends Action<'persist/REHYDRATE'> {
    payload: any;
}
export type CustomActions = IEditSuccess | IEditFailure | IPersistorAction;

似乎可以正常工作,TypeScript编译器不会引发任何错误,但是我想知道是否有更好/合适的方法来做到这一点。我试图在Internet上的各种资源上找到解决方案,并且在此处出现堆栈溢出的问题,但是没有成功。任何帮助将不胜感激。

0 个答案:

没有答案