首页 > 解决方案 > “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 修复此错误?非常感谢!

标签: reactjstypescript

解决方案


所以看起来你正在使用打字稿。Typescript 是一种强类型语言,这意味着通常您必须先定义变量的数据类型,然后才能使用它。这也意味着您只能将变量设置为分配给它的类型。

这个错误的意思是你试图将一个不是字符串的值分配给类型为“字符串”的变量。更具体地说,您似乎正在尝试将整个对象(“Item”类型)分配给“string”类型的变量。

您需要检查您的代码并确保您没有尝试在某处分配错误的数据类型。在您提供的小代码片段中,很难看出错误在哪里。


推荐阅读