2012-10-02 3 views
1

저는 Javascript, NodeJS 및 - 분명히 TypeScript를 처음 사용합니다. 컴파일러 서비스 인 src/services (Windows)을 사용하여 편집기 용 인텔리 센스 등을 제공하고 싶습니다.tsc - module은 항상 인수에 관계없이 동일한 출력을 생성합니다.

내가 알 수있는 한, require NodeJS 서버의 TypeScript 서비스 코드가 필요하고 편집기의 코드와 통신 할 수 있어야합니다. 어떤 NodeJS 특정 TypeScript 서비스 코드도 찾을 수 없으므로 RequireJS를 통해 NodeJS에서 사용할 수 있도록 --module amd이라는 서비스 코드를 컴파일해야한다고 생각합니다.

위의 내용이 맞으면 서비스 코드를 --module amd으로 컴파일하려고하면 기본 모듈 종류 (아래 참조)를 사용할 때와 똑같은 결과가 나타납니다.

$ tsc.cmd --module amd --out amd.js .\languageService.ts 
$ tsc.cmd --out comm.js .\languageService.ts 
$ diff.exe .\amd.js .\comm.js 
$ 
+0

몇 시간 저를 툭 : http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1 – basarat

+0

경우 목표는 TS에 대한 편집기 지원입니다. [typescript-tools] (https://github.com/clausreinke/typescript-tools) – claus

답변

2

이것은 틀림없이 혼란이지만, languageService.ts의 코드는 '모듈'의 AMD/RequireJS의 정의의 의미에서 '모듈'에 있지 않습니다.

사양은 module 블록 내부의 사물을 "내부 모듈"이라고합니다. 그것이 languageService.ts에서 보는 것입니다. 최상위 이름을 드러내는 컨테이너 나 싱글 톤 (singleton)과 비슷하다고 생각할 수 있습니다 (간단한 내부 모듈의 코드 겐 (gen)을 보면이 점이 분명히 드러납니다). 모듈 로더를 사용하지 않고도 정상적인 최상위 오브젝트처럼 사용할 수 있습니다. .TS 파일에 최상위 선언에 export 지시자를 넣어 이루어집니다 require에 대한 (사양에 의해 명명으로)

외부 모듈을 생산 (사양 섹션 9.2.1 참조). 관심있는 경우 다운로드 할 수있는 샘플 (예 : 이미지 보드)이 있습니다.

+1

방금 ​​언어 변호사에게 직접 문의하십시오. 내부 모듈은 부모 범위에 이름을 소개하지만 최상위 레벨. –

+0

관련 TS 문제 : https://typescript.codeplex.com/workitem/521 https://typescript.codeplex.com/workitem/534 https://typescript.codeplex.com/workitem/97 – claus

1

모듈을 module이 아닌 export module으로 정의한 다음 --m amd 또는 --module amd으로 컴파일해야합니다.

내가 혼란을 명확히하기 위해 대 내부, 외부 모듈에 대한 비디오 자습서를 만든 실현 :

+0

StackOverflow에 오신 것을 환영합니다. BTW, 작은 따옴표 대신에 역 따옴표를 찾는 것처럼 보입니다. –

관련 문제