首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reselect Redux函数返回的TypeScript类型?

Reselect Redux函数返回的TypeScript类型?
EN

Stack Overflow用户
提问于 2020-03-26 17:39:37
回答 1查看 986关注 0票数 2

是否可以在Redux的重新选择中定义createSelector函数的返回类型?

我无法从官方文档中了解到这一点:https://github.com/reduxjs/reselect#q-are-there-typescript-typings

这个小抄似乎也没有提供这一点:https://github.com/piotrwitek/react-redux-typescript-guide#selectors-with-reselect

代码语言:javascript
复制
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返回的结果是这样的:

代码语言:javascript
复制
type Return = {
  text: string;
  completed: boolean;
}[]

那么我可以定义这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-26 19:08:09

您可以像这样定义返回:

代码语言:javascript
复制
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;
  }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60864420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档