2017-11-24 1 views
0

パワーBIカスタムビジュアルを作成しようとしています。 私は、私のインターフェイスファイルにtypescriptインターフェイスBiHiSankeyを持っています。typescriptオブジェクトに値を割り当てる

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); 

これを行っているが、エラーで、この方法の結果、Expected 0 arguments,but got 1を使用してnodeWidthに値を割り当てます。

なぜこのようなことが起こるのか分かりません。タイプスクリプトには新しいことがあります。

答えて

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で宣言された関数を想定しています。

+0

'()=>'とはどういう意味ですか? –

+1

これは、関数型を宣言するための構文です。これは通常、オブジェクトの外側から関数を設定する場合に使用されます。関数型をオーバーロードする方法は制限されています。この場合、メソッドの構文を使用する方が、さまざまなオーバーロードを許可するほうが適しています。 –

関連する問題