变量'data'隐式具有类型 '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'

它出现在我前臂的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)
}

最新更新