Chart.js error: type lacks a call signature '((...items: number[]) => number) | ((...items: ChartPoint[]) => number)' in Angular
Chart.js error: type lacks a call signature '((...items: number[]) => number) | ((...items: ChartPoint[]) => number)' in Angular
将 angular 应用程序部署到 Heroku
时,出现错误
error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '((...items: number[]) => number) | ((...items: ChartPoint[]) => number)' has no compatible call signatures.
但是我在显示错误的组件中没有此类代码。所以这似乎是 chart.js 类型缺少问题或不匹配 @types/chart.js
版本。
正在使用以下版本
"chart.js": "^2.8.0",
"@types/chart.js": "^2.7.52"
更新
<div style="display: block;">
<canvas #myChart baseChart
[datasets]="lineChartData"
[labels]="lineChartLabels"
[options]="lineChartOptions"
[colors]="lineChartColors"
[legend]="lineChartLegend"
[chartType]="lineChartType"
(chartClick)="onChartClick($event)">
</canvas>
</div>
在 .ts 文件中
this.lineChartData[0].data = [0]
this.lineChartData[0].data = [1]
this.lineChartData[0].data = [2]
其实[datasets]="lineChartData"
有两种。一个是 number[]
,另一个是 ChartPoint[]
,因此要将数据存储为数字,我们需要 type-cast 将数据存储为
(this.lineChartData[0].data as number[]).push(1)
HTML
<div style="display: block;">
<canvas #myChart baseChart [datasets]="lineChartData"></canvas>
</div>
将 angular 应用程序部署到 Heroku
时,出现错误
error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '((...items: number[]) => number) | ((...items: ChartPoint[]) => number)' has no compatible call signatures.
但是我在显示错误的组件中没有此类代码。所以这似乎是 chart.js 类型缺少问题或不匹配 @types/chart.js
版本。
正在使用以下版本
"chart.js": "^2.8.0",
"@types/chart.js": "^2.7.52"
更新
<div style="display: block;">
<canvas #myChart baseChart
[datasets]="lineChartData"
[labels]="lineChartLabels"
[options]="lineChartOptions"
[colors]="lineChartColors"
[legend]="lineChartLegend"
[chartType]="lineChartType"
(chartClick)="onChartClick($event)">
</canvas>
</div>
在 .ts 文件中
this.lineChartData[0].data = [0]
this.lineChartData[0].data = [1]
this.lineChartData[0].data = [2]
其实[datasets]="lineChartData"
有两种。一个是 number[]
,另一个是 ChartPoint[]
,因此要将数据存储为数字,我们需要 type-cast 将数据存储为
(this.lineChartData[0].data as number[]).push(1)
HTML
<div style="display: block;">
<canvas #myChart baseChart [datasets]="lineChartData"></canvas>
</div>