2017-11-24 11 views
0

고급 BI 사용자 지정 시각적 개체를 만들려고합니다. 내 인터페이스 파일에 타이프 스크립트 인터페이스 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

이것은 함수 유형을 선언하기위한 구문입니다. 이것은 일반적으로 객체 외부에서 함수를 설정하려는 경우에 사용됩니다. 함수 유형을 오버로드 할 수있는 방법은 제한되어 있습니다. 이 경우에는 다양한 오버로드를 허용하는 방법 구문을 사용하는 것이 좋습니다. –