我在下面的函数中有一些类型错误,而且我对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)
}