Не выключайте noImplicityAny
.Вы правы, вы не должны!
Что вы должны сделать, это объявить тип параметров, который является ActionsObservable<T>
.Где T должен быть типом действия.
Пример:
export enum SettingsActionTypes {
FETCH: "settings/fetch",
FETCH_SUCCESS: "settings/fetchSuccess"
}
export function fetch(): IFetchAction {
return {
type: SettingsActionTypes.FETCH
};
}
export interface IFetchAction {
type: SettingsActionTypes.FETCH;
}
export interface IFetchSuccessAction {
type: SettingsActionTypes.FETCH_SUCCESS;
}
export type SettingsAction = IFetchAction | IFetchSuccessAction;
Тогда в своих эпосах вы можете написать что-то вроде этого:
import {
ActionsObservable,
StateObservable
} from 'redux-observable';
export const fetchSettingsEpic = (action$: ActionsObservable<SettingsAction>) =>
action$.ofType(SettingsActionTypes.FETCH).mergeMap(...do your stuff here...)
Также,если вам нужно получить доступ к состоянию в ваших эпосах, вам, возможно, придется использовать второй параметр state $, тип которого StatesObservable<T>
.Где T - это интерфейс, который определяет структуру всего вашего состояния избыточности.