角度,打字稿,谷歌图表-类型(Date | number)[] []不可分配为Array <Array <string | number >>

时间:2019-10-28 00:04:43

标签: angular typescript google-visualization

我在Google图表模块中使用angular 8。

我试图创建一个Google Calendar Chart并将其添加到其他已经运行的Google图表中。

但是,当我传递数据时,在我的component.html中, 我收到Type (Date|number)[][] is not assignable to type Array<Array<string|number>>的错误(IDE发出警告)。我很茫然,因为对我来说,我似乎根据需要传递了2D数组的日期和值。

尽管我的前端确实可以编译,但是当我进入带有Google日历的页面时,页面崩溃/卡住了。

我的 something.component.html

<google-chart
            [type]="Calendar"
            [data]="calendarChartData"  <----------------------- HERE IS THE ERROR
            [columnNames]="calendarChartColumnNames"
            [options]="calendarChartOptions">
</google-chart>

我的 something.component.ts

calendarChartOptions = {
    title: 'Some title',
    height: 350,
    calendar: {
      dayOfWeekLabel: {
        fontName: 'Times-Roman',
        fontSize: 12,
        color: '#1a8763',
        bold: true,
        italic: true,
      },
      dayOfWeekRightSpace: 10,
      cellSize: 10,
    }
  };
  calendarChartColumnNames = ['Date', 'someNumber'];
  calendarChartData = [
    [new Date(2019, 3, 13), 333],
    [new Date(2019, 9, 16), 372],
    [new Date(2019, 9, 17), 5333],
    [new Date(2019, 9, 18), 3702],
    [new Date(2019, 9, 19), 3103],
    [new Date(2019, 9, 20), 2244],
    [new Date(2019, 9, 21), 9531],
    [new Date(2019, 9, 22), 5503]
  ];

我的 something.module.ts

...
import { GoogleChartsModule } from 'angular-google-charts';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
...

1 个答案:

答案 0 :(得分:1)

我以前没有使用过Google图表...

从错误中听起来,您需要做的就是将日期转换为字符串。

...
calendarChartData = [
    [new Date(2019, 3, 13).toISOString(), 333],
    [new Date(2019, 3, 13).toDateString(), 333], // not sure exactly which format the module requires.
    ...
  ];