我有一个从 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,它工作正常,但我想过滤团队数组并获取所选团队的详细信息,只是为了获取其名称。但我看到这个错误;
我不明白这一点,过滤函数不需要一个 bool 值吗?这与团队类型有什么关系?有人可以给我解释一下吗?
- 我尝试将类型设置为“any”,但没有成功。
最佳答案
这就是 TS 希望您编写该行的方式:
const selectedTeam = teams.filter((team): boolean => team.id === isSelected);
编写 (team): team
意味着您传递给 filter
的 lambda 将返回 team
但 filter
期望函数返回一个 bool 值
。您不必明确说明过滤器
将返回一个团队,因为它自己的签名已经暗示了这一点。
关于javascript - bool 类型不可分配给 Filter 函数中的类型 "team",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66917336/