类型'import(“ / @ types / chart.js / index.d.ts”)'缺少类型'any []'中的以下属性:length,pop,push,concat和另外26个

时间:2019-04-22 15:56:13

标签: angular typescript chart.js

我的角度应用程序出现问题。

我通过chart.js安装了chartjs-plugin-datalabelsnpm库,创建了图表并正常运行,但是当我尝试部署该应用程序时,控制台显示以下错误:

  

错误TS2740:类型'import(“ / node_modules/@types/chart.js/index.d.ts”)'缺少类型'any []'中的以下属性:length,pop,push,concat,还有26个   错误TS2322:类型'import(“ / node_modules/@types/chart.js/index.d.ts”)'无法分配为类型'any []'。

我尝试了其他方法来解决此问题,但问题仍然存在,这是我的代码:

import * as Chart from 'chart.js';
import 'chartjs-plugin-datalabels';

this.ReceivedChart = new Chart('received', {
            type: 'line',
            data:{
              labels:this.LabelsData,
              datasets:[
                {
                  data:this.ReceivedData,
                  borderColor: "#3cba9f",
                  fill: false,
                  label:'Received'
                }
              ]
            },
            options: {
              plugins: {
                datalabels: {
                   display: true,
                   align: 'top',
                   anchor: 'end',
                   rotation:90
                }
             },
              legend: {
                display: true
              },
              scales: {
                xAxes: [{
                  display: true,
                  ticks: {
                    autoSkip: false,
                    maxRotation: 90,
                    minRotation: 90
                  }
                }],
                yAxes: [{
                  display: true
                }],
              }
            }
        });

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您已将ReceivedChart声明为空数组,因此为其指定了类型any[]

this.ReceivedChart = []; // TypeScript infers the type to be any[] here

在代码中,您正在创建一个新图表并将其设置为该变量。

this.ReceivedChart = new Chart(...);

TypeScript抱怨是因为您正在将Chart对象设置为它期望是数组的对象。您可能需要将变量设置为Chart类型(试图将其设置为变量),或者需要将刚刚创建的图表推送到数组中。

this.ReceivedChart.push(new Chart(...));