ChartJS 类型“Record〈string,unknown>[]"无法分配给类型”Plugin〈any,AnyObject>[]“

mpgws1up  于 2023-01-20  发布在  Chart.js
关注(0)|答案(1)|浏览(177)

我正在尝试在我的角项目中实现chartJS,我使用的是ng 2-charts。当我按照这里写的文档:https://valor-software.com/ng2-charts/#GeneralInfo我的项目在注册DatalabelsPlugin插件时崩溃。
package.jon

{
 "@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",
}

我导入ng 2图表的模块

import { NgChartsModule } from 'ng2-charts';

....

imports: [
    NgChartsModule
  ],

本人姓名:

import DatalabelsPlugin from 'chartjs-plugin-datalabels';

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

我的模板:

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

我尝试过什么:
我怀疑我的版本是不正确的一些文档中提到,我需要注册插件,但当我尝试这一点,我也得到错误(我已经尝试了不同的语法如何注册插件,如这里所述:但是没有运气。
我还安装了chart.js的typescript定义(没有帮助)我得到的错误是这样的:

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

EDIT:这个问题在我添加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

谢谢大家!

ej83mcc0

ej83mcc01#

chartjs-plugin-datalabels 1.0.0是一个老版本,它依赖于Chart.js 2.x,它的类型定义(可能还有它的实现)似乎与Chart.js 3.x不兼容。

相关问题