我想为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方法具有“&”交集类型。
您需要强制转换(打字稿不知道它是数字还是ChartPoint ::
(ds.data as ChartPoint[]).push(p);