我正在尝试创建一个功能BI自定义视觉效果。
我的interfaces文件中有一个打字稿接口BiHiSankey
。
declare module 'd3' {
interface BiHiSankey {
nodeSpacing: () => number;
nodeWidth: () => number;
collapsedNodes: () => d3.Selection<any>
}
export var biHiSankey: () => BiHiSankey
}
在我的visual.ts文件中,我已经完成了这个,
let BiHi=d3.biHiSankey();
BiHi.nodeWidth(20);
但是使用此方法为nodeWidth分配值会导致错误Expected 0 arguments,but got 1
。
我不明白为什么会这样。我是打字稿的新手,有人可以帮忙吗?
答案 0 :(得分:1)
您需要声明单独的重载以获取和设置值。
interface BiHiSankey {
nodeSpacing(): number;
nodeSpacing(value: number): void;
nodeWidth(): number;
nodeWidth(value: number): void;
}
let BiHi=d3.biHiSankey();
BiHi.nodeWidth(20); // set value
BiHi.nodeWidth(); // get value
注意:这假设JS中声明的函数支持此功能。