Код выглядит следующим образом
import { Action } from "redux";
import { ActionsObservable, ofType, combineEpics } from 'redux-observable'
import { map } from 'rxjs/operators'
export enum ActionTypes {
One = 'ACTION_ONE',
Two = 'ACTION_TWO'
}
export interface One extends Action {
type: ActionTypes.One
//commnent out next line to remove error
myStr: string
}
export const doOne = (myStr: string): One => ({
type: ActionTypes.One,
//comment out next line to remove error
myStr
})
export interface Two extends Action {
type: ActionTypes.Two
myBool: boolean
}
export const doTwo = (myBool: boolean): Two => ({ type: ActionTypes.Two, myBool })
export type Actions = One | Two
export const epic = (action$: ActionsObservable<Actions>) =>
action$.pipe(
ofType<Actions, One>(ActionTypes.One),
map((action: any) => ({
type: ActionTypes.Two,
myBool: true
}))
)
export const rootEpic = combineEpics(epic)
Также как я создаю магазин
import { createEpicMiddleware } from "redux-observable"
import { createStore, applyMiddleware } from "redux"
import { reducer } from "./reducer"
import { rootEpic } from "./epic"
export const configStore = () => {
const epicMiddleware = createEpicMiddleware()
const store = createStore(reducer, applyMiddleware(epicMiddleware))
epicMiddleware.run(rootEpic)
return store
}
Также ссылка на публичный репозиторий git . Последние 4 часа я потратил, пытаясь добавить полезную нагрузку к действию, но с каждым возможным фильтрующим решением это не удалось. Также происходит сбой с библиотекой TypeSafe-Actions.