将值推入多维数组时出现 TSLint 接口错误
Getting TSLint interface error while pushing value into multidimensional array
我正在将响应转换为月和日数组,在日数组中我有数字数组。逻辑按预期工作正常,但我在将值推入日数组时遇到 tslint 错误,
错误 - 'number' 类型的参数不可分配给 'DayTimeData' 类型的参数。
这是我的界面代码-
export interface SerializeHourValData {
name: string;
data: MonthDateTimeData[];
}
export interface MonthDateTimeData {
[month: number]: DayTimeData[];
}
export interface DayTimeData {
[day: number]: number[];
}
以及我出错的逻辑代码
public valData: SerializeHourValData[] = [];
// Here I am looping through and getting month & day number and from using that I am storing hourlyData in day.
this.valData[index].data[month] = this.valData[index].data[month] || [];
this.valData[index].data[month][day] = this.valData[index].data[month][day] || [];
for (const key in hourlyData) {
if (key.indexOf('h') > -1) {
this.valData[index].data[month][day].push(+hourlyData[key]); // here i am getting Tslint error for '+hourlyData[key]'
}
}
Here is the snapshot how data looks after serialization -
让我知道我在界面上哪里错了。
您的数据模型不匹配。当您尝试将值推送到 this.valData[index].data
数组时,根据您共享的图像,它必须是 MonthDateTimeData
的数组。但是您只是将 number
传递给数组的 push 函数。
根据界面SerializeHourValData
export interface SerializeHourValData {
name: string;
data: MonthDateTimeData[];
}
它期望数据是一个 MonthDateTimeData
对象数组。您只传递一个数字,而不是传递 MonthDateTimeData 对象数组。将值推送到 this.valData[index].data
时。根据数组更改它或相应地更改模型。然后就可以正常工作了。
我正在将响应转换为月和日数组,在日数组中我有数字数组。逻辑按预期工作正常,但我在将值推入日数组时遇到 tslint 错误,
错误 - 'number' 类型的参数不可分配给 'DayTimeData' 类型的参数。
这是我的界面代码-
export interface SerializeHourValData {
name: string;
data: MonthDateTimeData[];
}
export interface MonthDateTimeData {
[month: number]: DayTimeData[];
}
export interface DayTimeData {
[day: number]: number[];
}
以及我出错的逻辑代码
public valData: SerializeHourValData[] = [];
// Here I am looping through and getting month & day number and from using that I am storing hourlyData in day.
this.valData[index].data[month] = this.valData[index].data[month] || [];
this.valData[index].data[month][day] = this.valData[index].data[month][day] || [];
for (const key in hourlyData) {
if (key.indexOf('h') > -1) {
this.valData[index].data[month][day].push(+hourlyData[key]); // here i am getting Tslint error for '+hourlyData[key]'
}
}
Here is the snapshot how data looks after serialization -
让我知道我在界面上哪里错了。
您的数据模型不匹配。当您尝试将值推送到 this.valData[index].data
数组时,根据您共享的图像,它必须是 MonthDateTimeData
的数组。但是您只是将 number
传递给数组的 push 函数。
根据界面SerializeHourValData
export interface SerializeHourValData {
name: string;
data: MonthDateTimeData[];
}
它期望数据是一个 MonthDateTimeData
对象数组。您只传递一个数字,而不是传递 MonthDateTimeData 对象数组。将值推送到 this.valData[index].data
时。根据数组更改它或相应地更改模型。然后就可以正常工作了。