如何使用TypeScript将ChartPoint添加到Chart.js中的数据集?

时间:2019-05-29 10:24:42

标签: typescript chart.js powerbi

我想为powerbi创建自定义视觉。我正在使用chart.js和@ types / chart.js。但是我无法将新的ChartPoint添加到折线图的数据集中。

let p: ChartPoint = {
                        x: data.timestamp,
                        y: data.value,
                    };
ds.data.push(p);

但这无法编译:

  

TS2349:无法调用类型缺少调用签名的表达式。键入'((......项目:number [])=> number)| (((... items:ChartPoint [])=> number)'没有兼容的呼叫签名。

ds类型为Chart.ChartDataSets

,并且ds.data类型为Chart.ChartDataSets.data ?: number [] | ChartPoint []

但是push Method签名是: Array.push(items:( number&ChartPoint )[]):number

所以我尝试了这个:

                    let a: (number & ChartPoint);
                    a.x = data.timestamp;
                    a.y = data.value;
                    ds.data.push(a);

但这不能与相同的消息一起编译:

  

TS2349:无法调用类型缺少调用签名的表达式。键入'((......项目:number [])=> number)| (((... items:ChartPoint [])=> number)'没有兼容的呼叫签名。

我是Typescript的新手。我不知道如何使用push方法以及为什么push方法具有“&”交集类型。

1 个答案:

答案 0 :(得分:0)

您需要强制转换(打字稿不知道它是数字还是ChartPoint):

(ds.data as ChartPoint[]).push(p);