rxjs ожидает совместимые типы действий для наблюдаемых в потоке
Я использую redux-observable
подписаться на действия и выполнить некоторые действия:
const fetchClientsEpic = (action$) =>
action$.ofType(fetchClients).switchMap(() =>
Observable.ajax
.getJSON(API.GET_CLIENTS)
.map(API.parseResponse)
.map((clients: IClient[]) =>
map(clients, (client, index) => ({
key: index,
...client,
})),
)
.mergeMap((clients) => [
fetchClientsSuccess(clients),
closeGlobalOverlay(),
])
.catch(() => Observable.of(closeGlobalOverlay()))
.startWith(showSpinnerOverlay()),
);
//I define actions like this:
export const showGlobalOverlay: SimpleActionCreator<IGlobalOverlayStateProps> = createAction('SHOW_GLOBAL_POPUP');
export const closeGlobalOverlay: EmptyActionCreator = createAction(
'CLOSE_GLOBAL_POPUP',
);
export const showSpinnerOverlay = () =>
showGlobalOverlay({ popup: GlobalOverlayPopup.Spinner });
А также SimpleActionCreator
происходит от redux-act
,
Все отлично работает но в эпическом потоке .startWith
требуется последний наблюдаемый тип. Что означает (насколько я понимаю) тип closeGlobalOverlay
действие (EmptyActionCreator
который возвращается Action<null, null>
). общий SimpleActionCreator
тип возвращает тип Action
с моим типом полезной нагрузки.
Я не могу понять, как это должно быть решено.