嘿,我正在尝试遍历一个数组并找到一个值的匹配项,但是我遇到了一些打字稿问题。当使用 findIndex 函数描述数组中是否存在匹配时,我收到以下错误。
<块引用>“Main[]”类型上不存在属性“大洲”
不确定这里发生了什么,我猜我的映射有问题。
接口:
interface Main {
continents: Array<Continents>;
}
interface Continents {
name: string;
url: string;
countries?: Array<Countries>;
}
interface Countries {
name: string;
url: string;
states: string | null;
featuredCities: Array<Cities>;
}
interface Cities {
name: string;
url: string;
}
状态:
const [staticLocationHierarchy, setStaticLocationHierarchy] = useState<Array<Main>>([]);
业务逻辑:
const checkOne = staticLocationHierarchy?.continents.findIndex(
continents => continents.url === test
);
答案 0 :(得分:0)
我不确切知道您要查找的值,但是您需要先清理一些变量,使代码干净将有助于打字稿知道您想要什么。我刚刚删除并重命名了一些变量,希望它会有所帮助
interface Continent {
name: string;
url: string;
country?: Country[];
}
interface Country {
name: string;
url: string;
states: string | null;
featuredCity: City[];
}
interface City {
name: string;
url: string;
}
const [staticLocationHierarchy, setStaticLocationHierarchy] = useState<Continent[]>([]);
const checkOne = staticLocationHierarchy.filter((continent, index) => {
return continent.url = test
})