2016-06-12 3 views
2

내 노드 모듈에서 타이프 선언 파일을 추가하려고하지만 VS 코드에서 다른 프로젝트에서 사용할 때 오류에 실행 해요 나에게 오류를주고는 :타이프 선언 파일 VSCode

외부 패키지를 수출 입력 파일 .../ttk.d.ts가 모듈이 아닙니다.

해당 ttk.d.ts 파일은 here입니다.

이상한 점은 VS 코드에서 선언 파일을 사용하여 자동 완성을 얻는 것입니다. 아무도 내가 뭘 잘못하고 있는지 알아? 편집

:이 모듈을 가져 테스트 파일입니다

(상위 레벨 가져 오기 또는 내보내기가 없기 때문에) 기본적으로 파일이 글로벌 코드로 선언되고
const ttk = require('ttk'); 

const t = ttk.factory(); 
const r = t`Hello, ${'@name'}!`; 
const s = r({ name: 'World' }); 

console.log(s); 
+0

어떻게 가져 옵니까? – Zen

+0

해당 코드가있는 게시물이 업데이트되었습니다. 입력 내용은 package.json에 정의되어 있습니다. https://github.com/maexsoftware/ttk/blob/ttk.d.ts/package.json#L26 – Kylee

+0

게시물의 tkk.d.ts에 대한 죽은 링크가 수정되었습니다. 위의 귀하의 의견에 package.json의 역사적인 링크는 [여기] (https://github.com/maexsoftware/ttk/blob/0d6e435d449a1549d22c0f3c5c96fb7c09f2a963/package.json#L26) – ZachB

답변

3

하지만, TypeScript는 파일을 모듈로 예상합니다.

참조되는 .d.ts을 보면 파일이 모듈로 간주되도록 declare module "ttk"의 내용을 최상위 수준으로 이동해야합니다. 도움이 https://github.com/maexsoftware/ttk/pull/7

희망 :

나는 여기에 문제를 해결하기 위해 홍보를 보냈습니다!

+0

예, 이것은 정확히 그랬습니다. 어쩌면 나는 조금 밀도가 높지만 선언문 파일 작성과 관련된 문서는 분명하고 간결하지 않을 수 있습니다. 감사! – Kylee

+0

올바른 비트를보고 있으면 문서가 실제로 잘못된 것으로 보입니다. 모듈을 포장 한 상태로 포장되어 있습니다. https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html#function-as-an-module – ZachB

+0

Heh. 고정되어 있어야합니다 :) https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/declaration%20files/By%20Example.md – ZachB