使用Chart.js v3避免显式“any”

yks3o0rb  于 2022-12-18  发布在  Chart.js
关注(0)|答案(1)|浏览(214)

我们最近将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)[]>'.
piztneat

piztneat1#

您应该将其转换为正确的类型,在本例中它是线数据集:

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

相关问题