Тип TypeScript для возврата функции перевыбора Redux? - PullRequest
0 голосов
/ 26 марта 2020

Можно ли определить тип возврата функции createSelector в Redux's Reselect?

Я не мог понять это из официальных документов: https://github.com/reduxjs/reselect#q -are-there-typ-typScript-typings

Эта таблица также, похоже, не предоставляет это: https://github.com/piotrwitek/react-redux-typescript-guide#selectors -с повторным выбором

import { createSelector } from 'reselect';

import { TodosState } from './reducer';

export const getTodos = (state: TodosState) => state.todos;

export const getTodosFilter = (state: TodosState) => state.todosFilter;

export const getFilteredTodos = createSelector(getTodos, getTodosFilter, (todos, todosFilter) => {
  switch (todosFilter) {
    case 'completed':
      return todos.filter(t => t.completed);
    case 'active':
      return todos.filter(t => !t.completed);

    default:
      return todos;
  }
});

Если я знаю, что возврат из getFilteredTodos будет выглядеть примерно так:

type Return = {
  text: string;
  completed: boolean;
}[]

Тогда можно Я это определяю?

1 Ответ

0 голосов
/ 26 марта 2020

Вы можете определить возврат так:

export const getFilteredTodos = createSelector(getTodos, getTodosFilter, (todos, todosFilter) : { text: string; completed: boolean; }[] => {
  switch (todosFilter) {
    case 'completed':
      return todos.filter(t => t.completed);
    case 'active':
      return todos.filter(t => !t.completed);

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