Я хочу создать функцию, которая что-то делает с редуктором (не важно, что это такое, просто какое-то преобразование, похожее на Объединение редукторов).У меня есть проблема, когда я хочу абстрагироваться state
для редуктора.Вот упрощенный редуктор, используемый для некоторого компонента:
type someState = {
foo: number,
};
export const someSimpleReducer = (state: someState) => state;
type StateAbstract = {}; // this doesn't work
// type StateAbstract = any; // this works
, а вот абстрактная функция преобразования с абстрактным состоянием:
declare type SimpleReducer<S> = (state: S) => S;
export const transformReducer = (reducer: SimpleReducer<StateAbstract>) => ({
reducer,
});
transformReducer(someSimpleReducer);
я вижу следующую ошибку потока:
Поток: невозможно вызвать transformReducer
с someSimpleReducer
, связанным с reducer
, поскольку свойство foo
отсутствует в StateAbstract
[1], но существует в someState
[2] в первом аргументе
Если я использую type StateAbstract = any
, то я не вижу никакой ошибки ... Как я могу написать StateAbstract
type, чтобы это не any
, а объект?