类型编号的参数不能分配给类型字符串的参数

时间:2018-08-05 19:22:50

标签: angular typescript

我有三个数组,

let averageReport: any = [1, 2, 3, 4, 5]
let maleData: Array<any> = [];
let femaleData: Array<any> = [];

我遍历平均报告并将值推送到maleData和femaleData。我将数组类型声明为任何类型,但仍然是打字稿,但抱怨“类型为“数字”的参数不能分配给类型为“字符串”的参数” 有类似的问题具有与此相同的问题标题,但这与这些问题不同。

这是code on stackblitz

代码

ngOnInit() {
    let averageReport: any = [1, 2, 3, 4, 5]
    let maleData: Array<any> = [];
    let femaleData: Array<any> = [];
    let dateNow = new Date();
    let startDate = new Date(dateNow.getTime() - 20000);
    averageReport
      .map(
        x => {
          if (x === 1) {
            femaleData.push(
              {
                x: parseInt(startDate.getTime() / 1000), // here is the propblem
                y: x.result
              })
          }
          if (x === 2) {
            maleData.push(
              {
                x: parseInt(startDate.getTime() / 1000),
                y: x.result
              })
          }
        }
      )
  }

1 个答案:

答案 0 :(得分:1)

尝试一下: 我将“数组”更改为“ any []”,将.map更改为for-of,并将parseInt更改为Math.round

ngOnInit() {
    let averageReport: any = [1, 2, 3, 4, 5]
    let maleData: any[] = [];
    let femaleData: any[] = [];
    let dateNow = new Date();
    let startDate = new Date(dateNow.getTime() - 20000);
    for(let report of averageReport) {
          if (report === 1) {
            femaleData.push(
              {
                x: Math.round(startDate.getTime() / 1000), // here is the propblem
                y: report.result
              })
          }
          if (report === 2) {
            maleData.push(
              {
                x: Math.round(startDate.getTime() / 1000),
                y: report.result
              })
          }
    }
  }