【发布时间】:2020-03-26 09:39:36
【问题描述】:
是否可以在 Redux 的 Reselect 中定义 createSelector 函数的返回类型?
我无法从官方文档中弄清楚这一点:https://github.com/reduxjs/reselect#q-are-there-typescript-typings
这个备忘单似乎也没有提供这个: https://github.com/piotrwitek/react-redux-typescript-guide#selectors-with-reselect
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;
}[]
那我可以定义这个吗?
【问题讨论】:
-
据我所知,如果推断错误,您只需要定义最后一个函数返回。所以应该只是
(todos, todosFilter): { text: string; completed: boolean; }[]
标签: typescript reselect