将值推入多维数组时出现 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 时。根据数组更改它或相应地更改模型。然后就可以正常工作了。