React TypeScript报错:map不存在于DataItemList类型的原因
问题解析:map不存在于DataItemList类型的原因
你搞错了DataItemList的类型本质——它不是数组类型,而是一个包含数组属性的对象类型,这就是报错的核心原因:
- 定义里的
DataItemList是一个对象,只有一个可选属性performanceTimePointList,这个属性才是DataItem[]类型的数组。 - 第二个能运行的函数,参数直接是
DataItem[]数组,数组原型上自带map方法,所以可以正常调用。
你报错的代码里,data是DataItemList对象,对象本身没有map方法,自然会报错。要修正的话,得先取出对象里的数组属性再调用map:
const convertToChartData = async (data: DataItemList) => { console.log("???", data); // 用可选链+空值合并处理属性可能不存在的情况 const performanceList = data.performanceTimePointList ?? []; const performanceData = performanceList.map(item => item.title); }
另外注意,你之前的map回调里写data.title也是错误的——不管是数组还是对象,data都是整体,要取每个元素的title,得用map的参数(比如上面的item)来访问。
内容的提问来源于stack exchange,提问作者Julia
相关产品推荐
相关产品推荐

