为typescript对象分配值

时间:2017-11-24 10:52:50

标签: typescript interface

我正在尝试创建一个功能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

我不明白为什么会这样。我是打字稿的新手,有人可以帮忙吗?

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中声明的函数支持此功能。