2016-08-01 1 views
0

이미 존재하는 라이브러리에 대한 입력 정의를 만들고 해당 구조를 올바르게 설명하는 데 문제가 있습니다. 문제는 중첩 된 네임 스페이스입니다. 내가 중첩 된 네임 스페이스에 대한 export interface, export module으로, 서로 다른 조합을 시도했습니다 ...중첩 된 네임 스페이스에 대한 입력 스크립트 작성

NameSpace1.NameSpace2.NameSpace3.MethodName() 

하지만 적절한 d.ts 정의 파일을 만들 수 아니에요 ... : 자바 스크립트에서 내 방법의 전체 이름은 다음과 같습니다 그러나 아무것도 작동하지 않습니다.

declare namespace NameSpace1 { 
} 

을하지만이 제대로 타이프 라이터 정의 이러한 중첩 된 네임 스페이스를 설명하는 방법을 알고 마 ... 충분하지 않습니다 : 오류가 발생하지 않는 유일한 구조는 다음과 같은입니까?

답변

1
declare namespace NameSpace1.NameSpace2.NameSpace3 { 
    function MethodName(): void; 
} 

그대로 https://github.com/DefinitelyTyped/DefinitelyTyped에서 정의 파일을 작성하는 방법의 예 수천이있다; 다음에 갇혀있는 것과 비슷한 것을 찾아 볼 것을 권합니다.

+0

나는 그 접근법을 시도해 봤지만 나를 위해 일하지 않았다. 정의를 사용하려고하면 'Namespace2'속성이 'typeof Namespace1'유형에 없습니다. ... – shytikov

+0

TypeScript 놀이터에서 작동합니다. 어쩌면 질문에 실제 예를 게시 할 수 있습니까? –

+0

예, 지금 바로 게시하겠습니다! 도와 주셔서 감사합니다! – shytikov

관련 문제