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

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

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

  1. {
  2. "@agm/core": "3.0.0-beta.0",
  3. "@angular-builders/jest": "12.1.2",
  4. "@angular/animations": "^14.2.12",
  5. "@angular/cdk": "12.1.0",
  6. "@angular/common": "^14.2.12",
  7. "@angular/compiler": "^14.2.12",
  8. "@angular/core": "^14.2.12",
  9. "chart.js": "3.9.1",
  10. "chartjs-plugin-datalabels": "1.0.0",
  11. "ng2-charts": "4.1.1",
  12. }

我导入ng 2图表的模块

  1. import { NgChartsModule } from 'ng2-charts';
  2. ....
  3. imports: [
  4. NgChartsModule
  5. ],

本人姓名:

  1. import DatalabelsPlugin from 'chartjs-plugin-datalabels';
  2. export class ClientInfoTabComponent implements OnInit {
  3. public pieChartPlugins = [ DatalabelsPlugin ];
  4. }

我的模板:

  1. <canvas baseChart class="chart"
  2. [plugins]="pieChartPlugins">
  3. </canvas>

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

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

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

  1. public pieChartPlugins: any = [ DatalabelsPlugin ];

但现在我又犯了一个错误

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

谢谢大家!

ej83mcc0

ej83mcc01#

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

相关问题