如何解决变量“数据”隐式具有类型“ any []”
下面的函数中有一些类型错误,对于Typescript来说我还比较陌生,我不确定如何解决它们。
private fetchFromUrl = () => {
var data = []
fetch(`${process.env.PUBLIC_URL}/tempData/monthly.csv`)
.then(res => res.text())
.then(res => readString(res))
.then(res =>{
const Coords = res.data
Coords.forEach(x => data.push( {x: new Date(x[0]),y: Number(x[1]) } ))
})
return(data)
}
主要错误抱怨数据具有类型any [],但是当我指定其类型时。
let data: [Date,number];
我遇到了另一个错误:
Argument of type '{ x: Date; y: number; }' is not assignable to parameter of type 'number | Date'.
Object literal may only specify known properties,and 'x' does not exist in type 'Date'.
我确实认为其中一些错误可能源于该错误:
Object is of type 'unknown'
那是在我的foreach的x上。
我该如何解决这些错误?
解决方法
您正在将返回值设置为带有日期和数字的数组,但是您尝试将具有名称为x
(具有日期值)和属性y
(带有数字值),因此您所需要做的就是将键入更改为:
let data: [{ x: Date; y: number }]
编辑:基于评论中的其他问题的完整答案,因为(x)
也显示未键入:
private fetchFromUrl = () => {
let data: [{ x: Date; y: number }]
fetch(`${process.env.PUBLIC_URL}/tempData/monthly.csv`)
.then(res => res.text())
.then(res => readString(res))
.then(res =>{
const Coords: [string[]] = res.data
Coords.forEach(x => data.push( {x: new Date(x[0]),y: Number(x[1]) } ))
})
return(data)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。