Как правильно задать тип для middleware в Redux store?

Как исправить ошибку в TypeScript, возникающую при добавлении rtkApi.middleware через concat к getDefaultMiddleware в функции createReduxStore?
  • 1 мая 2024 г. 10:00
Ответы на вопрос 2
Для правильного задания типа для middleware в Redux store в TypeScript можно воспользоваться типом MiddlewareArray, который предоставляется библиотекой @reduxjs/toolkit. Пример использования:

```typescript
import {configureStore, MiddlewareArray} from '@reduxjs/toolkit';

const store = configureStore({
  reducer: rootReducer,
  middleware: new MiddlewareArray<ReturnType<typeof myMiddleware1> | ReturnType<typeof myMiddleware2>>([myMiddleware1, myMiddleware2])
});
```

Чтобы исправить ошибку, возникающую при добавлении rtkApi.middleware через concat к getDefaultMiddleware в функции createReduxStore, можно создать middleware при помощи MiddlewareArray и передать в его конструктор все необходимые middleware, включая rtkApi.middleware. Ниже приведен пример:

```typescript
import {configureStore, getDefaultMiddleware, MiddlewareArray} from '@reduxjs/toolkit';
import {apiSlice} from 'path/to/apiSlice';

const store = configureStore({
  reducer: rootReducer,
  middleware: new MiddlewareArray().concat(...getDefaultMiddleware(), apiSlice.middleware)
});
```

Таким образом, middleware будет правильно добавлен в Redux store и не должно возникать ошибок в TypeScript.
Убрать StateSchema, прокинутое в configureStore, он сам подхватит типы
Похожие вопросы