Búsqueda de sitios web

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
);

Artículos relacionados