Тип вашего штата совпадает с типом, который вы используете для всего штата. поскольку mapStateToProps принимает все состояние, чтобы передать его селекторам. в вашем случае я считаю, что это будет правильный тип IQuizInitialState
.
const mapStateToProps = (state: IQuizInitialState): StateProps => ({
})
РЕДАКТИРОВАТЬ
В своем комментарии вы упоминаете IQuizInitialState isntвсе ваше состояние приложения. Тогда этот не тот, который вам нужен. Вам нужен тип для всего состояния приложения. Чтобы добиться этого, вы можете создать интерфейс для каждого типа редуктора, то есть вашего IQuizInitialState , но для других редукторов в единый интерфейс.
Я должен здесь остановиться, поскольку у меня нет вашей кодовой базы, но подумайте:
combineReducers({potato: quizReducer, tomato: otherReduzer})
вам понадобится тип
interface IApplicationState {
potato: IQuizInitialState;
tomato: IOTherInterfaceYouDefinedForThisReducer;
}
, вероятно ваш комбинатор будет выглядеть так:
combineReducers<IApplicationState>({
potato: quizReducer,
tomato: otherReduzer
});
Надеюсь, вы поняли идею.
EDIT 2 После прочтения вашего последнего комментария я заметил, что вы запрашиваете mapStateToProps с двумя аргументами. и вы просто определяете один. Тогда ваши дженерики подключения кажутся неправильными. Вы должны учитывать следующее:
connect<StateProps, DispatchProps, Props, IApplicationState>
где:
- StateProps: описывает, что было возвращено mapStateToProps ()
- DispatchProps: описывает, что возвращается dispatchToProps()
- Реквизиты: Ваш компонент реквизит
- IApplicationState: Представляет все состояние вашего приложения Redux