Почему мой тип параметра редуктора принимает значение undefined? - PullRequest
1 голос
/ 11 июня 2019

Я использую typescript в моем приложении «Реакция / Избыток». Есть ошибка типа, которую я не понимаю.

Ниже мой код действия:

import { createAction } from 'redux-actions';

export enum ProductActionType {
  SEARCH_STAMP = 'SEARCH_STAMP',
  SEARCH_PRODUCT = 'SEARCH_PRODUCT',
};

export interface ProductActionProps {
  text: string;
}

const searchStamp = createAction<ProductActionProps>(ProductActionType.SEARCH_STAMP);

Ниже мой редуктор:

import { handleActions } from 'redux-actions';
import { ProductActionType, ProductActionProps } from '@ap-actions/index';

export const productReducer = handleActions<Product, ProductActionProps>(
  {
    [ProductActionType.SEARCH_STAMP]: (state, { payload }) => { // here why payload type is ProductActionProps | undefined?
      ...
    }
  }, initialState
);

Проблема связана с типом payload внутри handleActions. Его тип ProductActionProps | undefined. Я должен проверить, является ли payload undefined в теле функции. Но я не понимаю, почему тип принимает undefined?

1 Ответ

0 голосов
/ 11 июня 2019

Вы правы, что тип { payload } должен быть { ProductActionProps }.Я задаюсь вопросом об определениях типов, которые вы установили для redux-actions.

Если вы этого еще не сделали, установите объявления типов redux-actions.

npm install @types/redux-actions --save-dev

Затем перезапустите редактор (чтобы перезапустить службу языка TypeScript).

Если это по-прежнему не работает, вам может потребоваться обновить типы.Я использую "@types/redux-actions": "^2.6.1", который не воспроизводит вашу ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...