提供されたドキュメントを使用して、redux プロジェクトを typescript に変換しようとしています。
https://redux.js.org/usage/usage-with-typescript#type-checking-middleware
ただし、カスタム ミドルウェアでそれを行うのに問題があります。これは、エラーの原因となる最小化および抽出されたコードです。
store.ts:
import { configureStore } from '@reduxjs/toolkit';
import reducer from './customReducer';
import { customMiddleware } from "./customMiddleware";
const store = configureStore({
reducer: {
custom: customReducer
},
middleware: getDefaultMiddleware => getDefaultMiddleware().prepend(customMiddleware)
})
export type RootState = ReturnType<typeof store.getState>
export default store
customMiddleware.ts:
import { Middleware } from 'redux';
import { RootState } from './store';
export const customMiddleware = (): Middleware<{}, RootState> => {
return store => next => action => {
return next(action);
}
}
これにより、いくつかのエラー メッセージが表示されます: on const store = configur...
:
'store' は型注釈を持たず、独自の初期化子で直接または間接的に参照されるため、暗黙的に型 'any' を持ちます。
RootState エクスポート:
タイプ エイリアス 'RootState' が自身を循環的に参照しています。
customMiddleware エクスポート:
'customMiddleware' には型注釈がなく、独自の初期化子で直接的または間接的に参照されるため、暗黙的に型 'any' があります。