TypeScript redux-persist правильный тип действия REHYDRATE - PullRequest
0 голосов
/ 29 мая 2019

У меня есть машинописный проект, основанный на реакции + редуксе с сохранением редукса. Я пытаюсь найти способ правильно набрать действие REHYDATE из redux-persist. При регулярном действии я использую шаблон, описанный в документах о реактивной редукции:

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

export type CustomActions = IEditSuccess | IEditFailure;

Это работает хорошо, однако есть проблема, когда я использую действие REHYDATE в редукторе от redux-persist - оно явно не включено в CustomActions. Я обнаружил, что работает добавление другого типа действия к экспортированному типу CustomActions:

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

Кажется, работает, компилятор TypeScript не выдаст никаких ошибок, однако мне интересно, есть ли лучший / правильный способ сделать это. Я пытался найти решение по разным источникам в интернете и по переполнению стека, но безуспешно. Любая помощь будет принята с благодарностью.

...