Как сделать так, чтобы полезная нагрузка никогда не была «неопределенной» в «машинописи» - PullRequest
0 голосов
/ 24 апреля 2019

В приложении «Реакция / Избыток» я использую handleActions в своих редукторах. Код в редукторе выглядит так:

export const servicesReducer = handleActions<RootState.ServicesState, string>({
  [ServiceActions.Type.FILTER_SERVICE_SEARCH]: (state, action) => {
    if (action.payload) {
      const payload: string = action.payload;
      const filteredServices = state.all.filter((s: ServiceModel) => s.text.startsWith(payload));
      return {...state, filtered: filteredServices};
    }
    return {...state, filtered: state.all};
  }
},
  initialState);

У меня проблема в том, что тип payload в действии является необязательным (string | undefined). Поэтому я должен добавить проверку if. Интересно, как я могу сделать так, чтобы он никогда не был undefined?

Ниже приведен код действий. Нужно ли вносить какие-либо изменения в функции действий? Как я могу это сделать, если это необходимо?

import { createAction } from 'redux-actions';


export namespace ServiceActions {
  export enum Type {
    FILTER_SERVICE_SEARCH = 'FILTER_SERVICE_SEARCH',
  };
  export const filterService = createAction(Type.FILTER_SERVICE_SEARCH);
};

export type ServiceActions = Omit<typeof ServiceActions, 'Type'>;

Как добавить тип в полезную нагрузку, чтобы он не был undefined? Например, когда я объявляю переменную как const a:string = "", a не может быть undefined. Могу ли я сделать аналогичную вещь для полезной нагрузки?

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