【问题标题】:Type 'Record<string, unknown>[]' is not assignable to type 'Plugin<any, AnyObject>[]'类型 \'Record<string, unknown>[]\' 不可分配给类型 \'Plugin<any, AnyObject>[]\'
【发布时间】:2023-01-18 22:59:15
【问题描述】:

我正在尝试在我的角度项目中实现 chartJS,并且我正在使用 ng2-charts。当我遵循此处编写的文档时:https://valor-software.com/ng2-charts/#GeneralInfo 我的项目在注册 DatalabelsPlugin 插件时崩溃了。

包.json

{
 "@agm/core": "3.0.0-beta.0",
 "@angular-builders/jest": "12.1.2",
 "@angular/animations": "^14.2.12",
 "@angular/cdk": "12.1.0",
 "@angular/common": "^14.2.12",
 "@angular/compiler": "^14.2.12",
 "@angular/core": "^14.2.12",
"chart.js": "3.9.1",
"chartjs-plugin-datalabels": "1.0.0",
"ng2-charts": "4.1.1",
}

我导入 ng2-charts 的模块

import { NgChartsModule } from 'ng2-charts';

....

imports: [
    NgChartsModule
  ],

我的 ts:

import DatalabelsPlugin from 'chartjs-plugin-datalabels';

export class ClientInfoTabComponent implements OnInit {
  public pieChartPlugins = [ DatalabelsPlugin ];
}

我的模板:

  <canvas baseChart class="chart"
        [plugins]="pieChartPlugins">
</canvas>

我试过什么:

我怀疑我的版本在某些文档中提到我需要注册插件但是我也遇到错误(我已经尝试了不同的语法来注册插件,如下所述:@987654322 @ 但没有运气。

我还安装了 chart.js 的打字稿定义(没有帮助) 我得到的错误是这个:

10 - error TS2322: Type 'Record<string, unknown>[]' is not assignable to type 'Plugin<any, AnyObject>[]'.

编辑:在我将 type any 添加到 pieChartPlugins 之后,这个问题就消失了,如下所示:

public pieChartPlugins: any = [ DatalabelsPlugin ];

但现在我有另一个错误:

main.js:1 ERROR Error: Uncaught (in promise): ReferenceError: Cannot access 'Ja' before initialization
ReferenceError: Cannot access 'Ja' before initialization

谢谢!

【问题讨论】:

    标签: angular typescript chart.js ng2-charts


    【解决方案1】:

    chartjs-plugin-datalabels 1.0.0 是旧的并且说它依赖于 Chart.js 2.x。它的类型定义(可能还有它的实现)似乎与 Chart.js 3.x 不兼容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-11
      • 2021-04-22
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 2019-12-01
      相关资源
      最近更新 更多