reactjs - “Item”类型的错误参数不可分配给“string”类型的参数。TS2345
问题描述
我收到类型“字符串”的错误。TS2345
“Item”类型的参数不能分配给“string”类型的参数。TS2345
filter(resortList:ResortResult[], selectedFilters:SelectedFilters) {
return resortList
.filter(resort => {
let roomTypes = resort.available.flat().map(room => room.roomType);
let activities = resort.activities;
let hasRoomType = selectedFilters["room"].some(
(rt:Item)=> roomTypes.indexOf(rt) > -1
);
let hasActivity = selectedFilters["activity"].some(
(act:Item) => ((activities.indexOf(act.value)) > -1)
);
return !(
(selectedFilters["area"].length === 0 ||
selectedFilters["area"].indexOf(resort.city) > -1) &&
// (selectedFilters["views"].length === 0 ||
// selectedFilters["views"].indexOf(resort.city) > -1) &&
(selectedFilters["activity"].length === 0 || hasActivity) &&
(selectedFilters["room"].length === 0 || hasRoomType)
);
})
.map(resort => {
return resort.propertyCode;
});
}
如何使用 react-typescript 修复此错误?非常感谢!
解决方案
所以看起来你正在使用打字稿。Typescript 是一种强类型语言,这意味着通常您必须先定义变量的数据类型,然后才能使用它。这也意味着您只能将变量设置为分配给它的类型。
这个错误的意思是你试图将一个不是字符串的值分配给类型为“字符串”的变量。更具体地说,您似乎正在尝试将整个对象(“Item”类型)分配给“string”类型的变量。
您需要检查您的代码并确保您没有尝试在某处分配错误的数据类型。在您提供的小代码片段中,很难看出错误在哪里。
推荐阅读
- reactjs - 是否可以结合 React-Native、Vue.js 和 Laravel 构建原生应用程序?
- sqlite - React Native App 中的 iCloud 和 Google Drive 集成
- asp.net-mvc - 如何创建具有多个表的登录表单?
- c++ - 枚举的 std::unordered_set,调用 find 给出分段错误
- c# - C# 强类型属性
- javascript - 为什么地图未定义?
- javascript - 角度选择选项
- c# - 如何使用 NPOI 清除 C# 中的单元格值
- powershell - 将 C++ 转换为 PowerShell
- sql - CTE:每 15 天循环输入数据| SQL、SQL 服务器