类型“字符串”不可分配给类型“图表类型”

Posted

技术标签:

【中文标题】类型“字符串”不可分配给类型“图表类型”【英文标题】:Type 'string' is not assignable to type 'ChartType' 【发布时间】:2022-01-17 23:03:07 【问题描述】:

html文件

 <div style="width: 100%; display: block">
      <canvas
        *ngIf="loaded"
        baseChart
        [data]="barChartData"
        [labels]="barChartLabels"
        [options]="barChartOptions"
        [legend]="barChartLegend"
        [chartType]="barChartType"
        
      >
      </canvas>
    </div>

ts.文件

 barChartOptions: any = 
    scaleShowVerticalLines: false,
    responsive: true
  ;
  barChartLabels: string[] =[];
  barChartType: string = 'horizontalBar';
  barChartLegend: boolean = true;
  barChartData: any[] =[];
  loaded = false;

this.service.Salescount(form).subscribe((data) => 
      this.name = data.result;
      this.barChartLabels = this.name.map((item) => item.name);
      this.barChartData = this.name.map((item) => item.sales);
      this.loaded = true;
)

barchart.labels 和 barchartdata 中有 4 个值。运行时出现错误,因为“类型'字符串'不可分配给类型'ChartType'”

我还在 app.module.ts 中导入了 ChartModules

【问题讨论】:

您使用的是哪个版本的 chart.js? 看来您正在将一个字符串传递给一个需要 CharType 但无处可见的值 我在使用 "chart.js": "^2.9.4", "ng2-charts": "^2.4.2" 我得到了答案。我刚刚将 chartType 数据类型从 string 更改为 any 。 @FazariaAsira 应尽可能避免 【参考方案1】:

将您的 barChartType 类型从 string 更改为 ChartType 并从 chart.js 导入。

import  ChartOptions, ChartType, ChartDataSets  from 'chart.js';
public barChartType: ChartType = 'bar';

演示:https://stackblitz.com/edit/ng2-charts-bar-template?file=src%2Fapp%2Fapp.component.ts

【讨论】:

谢谢。终于这个工作了。我还有一个问题是如何在 2.5 范围内更改 y 轴值 请求您提出一个新问题,包括要求和您面临的问题。 好的@Vimal Patel。谢谢【参考方案2】:

如果您将 CharType 数据类型更改为任何类型?

【讨论】:

以上是关于类型“字符串”不可分配给类型“图表类型”的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“类型'字符串'不可分配给类型'从不'”?

类型“字符串”不可分配给类型“日期”[关闭]

打字稿类型'字符串| null' 不可分配给类型 'string'

键入'键:字符串; ' 不可分配给类型 'Product' Angular 7

构建:'string | 类型的参数1' 不可分配给“字符串”类型的参数

构建:'string | 类型的参数1' 不可分配给“字符串”类型的参数