rxjs - combineEpics usando TypeScript da error de tipo
Estoy recibiendo este error al combinar mis épicas:
TS2345: Argument of type 'Epic<SessionAction, GlobalState, any>' is not assignable to parameter of type 'Epic<EmployeeAction, GlobalState, any>'.
Type 'SessionAction' is not assignable to type 'EmployeeAction'.
Types of property 'type' are incompatible.
Type 'SessionActionTypes' is not assignable to type 'EmployeeActionTypes'.
El siguiente es el código:
import { combineEpics } from 'redux-observable';
import { fetchUserSession } from './sessionEpics';
import { fetchEmployee } from './employeeEpics';
export default combineEpics(
fetchEmployee,
fetchUserSession
);
Respuesta #1
O usa combineEpics<any>:
export default combineEpics<any>(
fetchEmployee,
fetchUserSession
);
Respuesta #2
Tengo prácticamente el mismo problema. Parece que TypeScript toma el primer epic, infiere su tipo y espera que todos los demás sean iguales.
Lo que hice fue lanzar el primero.
Usando tu código como ejemplo:
import { Observable } from 'rxjs/Observable';
import { AnyAction } from 'redux';
import { combineEpics } from 'redux-observable';
import { fetchUserSession } from './sessionEpics';
import { fetchEmployee } from './employeeEpics';
export default combineEpics(
fetchEmployee as Observable<AnyAction>,
fetchUserSession
);
