문제

저는 Javascript, NodeJS 및 --분명히-- TypeScript를 처음 접했습니다.컴파일러 서비스를 실험하고 싶습니다. src/services (Windows) 인텔리센스 등을 제공합니다.편집자에게.

내가 아는 한, 나는 할 수 있어야 한다 require NodeJS 서버의 TypeScript 서비스 코드를 작성하고 편집기에서 해당 코드와 통신합니다.NodeJS 관련 TypeScript 서비스 코드를 찾을 수 없으므로 다음을 사용하여 서비스 코드를 컴파일해야 할 것 같습니다. --module amd RequireJS를 통해 NodeJS에서 사용할 수 있도록 합니다.

위의 내용이 맞다면 다음과 같이 서비스 코드를 컴파일하려고 합니다. --module amd 기본 모듈 종류를 사용하는 것과 정확히 동일한 결과를 산출합니다(아래 참조).

$ tsc.cmd --module amd --out amd.js .\languageService.ts
$ tsc.cmd --out comm.js .\languageService.ts
$ diff.exe .\amd.js .\comm.js
$
도움이 되었습니까?

해결책

이는 분명히 혼란스러운 일이지만, LanguageService.ts의 코드는 AMD/RequireJS의 '모듈' 정의에 따른 '모듈'에 있지 않습니다.

사양은 내부 항목을 나타냅니다. module "내부 모듈"로 차단합니다.이것이 바로 LanguageService.ts에서 볼 수 있는 것입니다.최상위 이름을 노출하는 컨테이너나 싱글톤에 더 가깝다고 생각할 수 있습니다(간단한 내부 모듈에 대한 코드 생성을 보면 이 내용이 상당히 명확해집니다).모듈 로더가 전혀 없이 일반 최상위 객체처럼 이를 사용합니다.

생산 외부 모듈(사양에 따라 명명됨) require 을 넣어서 이루어집니다 export .ts 파일의 최상위 선언에 대한 지시문(사양 섹션 9.2.1 참조).몇 가지 샘플이 있습니다(예:이미지보드)를 다운로드할 수 있으며 관심이 있는 경우 이를 수행할 수 있습니다.

다른 팁

모듈을 다음과 같이 정의해야 합니다. export module, 당신이 아니야 module 그런 다음 다음과 같이 컴파일하십시오. --m amd 또는 --module amd.

깨닫는 데 몇 시간이 걸렸습니다 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top