Ошибка Chart.js: типу не хватает подписи вызова '((... items: number []) => number) | ((... items: ChartPoint []) => number) 'в угловых - PullRequest
0 голосов
/ 29 мая 2019

При развертывании углового приложения на Heroku появляется ошибка

ошибка TS2349: невозможно вызвать выражение, тип которого не имеет подписи вызова. Тип '((... items: number []) => number) | ((... items: ChartPoint []) => number) 'нет совместимых подписей вызовов.

Но у меня нет такого типа кода внутри этого компонента, который показывает ошибка. Так что, похоже, проблема с типом 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]

1 Ответ

0 голосов
/ 30 мая 2019

На самом деле [datasets]="lineChartData" имеет два типа.Один из них - number[], а другой - ChartPoint[], поэтому для хранения данных мне нужно набрать входные данные как

(this.lineChartData[0].data as number[]).push(1)
(this.lineChartData[0].data as number[]).push(2)
(this.lineChartData[0].data as number[]).push(3)

HTML

<div style="display: block;">
    <canvas #myChart baseChart 
            [datasets]="lineChartData" 
            [labels]="lineChartLabels" 
            [options]="lineChartOptions"
            [colors]="lineChartColors" 
            [legend]="lineChartLegend" 
            [chartType]="lineChartType"
          (chartClick)="onChartClick($event)">
    </canvas>
</div>
...