避免显式'any' 图表.js v3



我们最近将Chart.JS库从v2升级到v3,部分原因是为了在TypeScript代码中使用新的、集成的类型注释,但是我们遇到了一些问题,被迫使用显式的"any"类型强制转换以使代码工作。还有别的办法吗?

的例子:设置ChartDataset显示为虚线:

(cds as any).borderDash = [10, 5];

按预期工作,但如果不添加显式any强制转换,则编译失败,并出现如下错误:

[tsl] ERROR in /Users/bbowman/git/dragen-plots2/src/lib/plots/mbias_tool.ts(42,13)
TS2339: Property 'borderDash' does not exist on type 'ChartDataset<keyof ChartTypeRegistry, (number | ScatterDataPoint | BubbleDataPoint | null)[]>'.
Property 'borderDash' does not exist on type '_DeepPartialObject<{ type: "bar"; } & BarControllerDatasetOptions> & ChartDatasetProperties<keyof ChartTypeRegistry, (number | ... 2 more ... | null)[]>'.

你应该把它转换成正确的类型在这种情况下,它是行数据集:

(cds as ChartDataset<"line">).borderDash = [10, 5];

最新更新