javascript - bool 类型不可分配给 Filter 函数中的类型 "team"

标签 javascript reactjs typescript

我有一个从 API 获取的足球队列表,还有一个选择球队的状态,以便我可以对选定的球队应用一些样式。到目前为止,它运行得很好,但我想得到这样的团队名称;

interface team {
  id: number;
  name: string;
  icon: string;
}

const MainPage: React.FC = () => {
  const [teams, setTeams] = useState<team[]>([]);

  const [isSelected, setIsSelected] = useState<number>();

  const selectedTeam = teams.filter((team): team => team.id === isSelected);

所以 isSelected 状态不是 bool 值,我知道这样的命名是错误的。但这是一个 ID,它工作正常,但我想过滤团队数组并获取所选团队的详细信息,只是为了获取其名称。但我看到这个错误;

enter image description here

我不明白这一点,过滤函数不需要一个 bool 值吗?这与团队类型有什么关系?有人可以给我解释一下吗?

  • 我尝试将类型设置为“any”,但没有成功。

最佳答案

这就是 TS 希望您编写该行的方式:

  const selectedTeam = teams.filter((team): boolean => team.id === isSelected);

编写 (team): team 意味着您传递给 filter 的 lambda 将返回 teamfilter 期望函数返回一个 bool 值。您不必明确说明过滤器将返回一个团队,因为它自己的签名已经暗示了这一点。

关于javascript - bool 类型不可分配给 Filter 函数中的类型 "team",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66917336/

相关文章:

javascript - 容器上具有单击处理程序的正常链接功能

javascript - Jade Mixin - 对象操作

javascript - 基于状态响应条件渲染

javascript - 在javascript中计算iso时间格式的时差?

javascript - 在 Angular 2 中路由期间保持组件事件

javascript - 有没有办法在 AdonisJS 4.1.0 中进行条件查询?

Javascript对对象数组进行分组以获得最终的键

javascript - react : Render parent component only if children will render

javascript - 从 json 响应中查找下一个最接近的日期和时间

javascript - .typescript + angular 2中的每个函数