"내보내기 모듈"을 여러 파일에 걸쳐 배포 할 수 있는지 파악할 수 없습니다. 내가 파일 Contact.ts이있는 경우여러 AMD 파일에 모듈을 분산시키는 방법은 무엇입니까?
: 다음
// file Contact.ts
export module Contacts {
export class Contact {
...
}
}
다른 ContactView.ts
// file ContactView.ts
export module Contacts {
export class ContactView {
model: Contact; // <--- is not recognized
}
}
를 TSC는 연락 클래스를 인식하지 못합니다. 알 수 있듯이 Contact와 ContactView는 동일한 모듈에 존재한다고 선언되었고, 사양에 따라 작동해야합니다.
"내보내기 모듈"선언을 사용해야하므로 require.js 및 AMD 패턴을 사용하는 복합 응용 프로그램을 빌드하고 있습니다.
"미리 선언"또는 까다로운 "가져 오기"를해야합니까?
고마워.
EDIT : 현재 가져 오기를 통해 각 모듈을 개별적으로로드하지만, 눈에 잘 띄면 엄청난 양의 코드 및 많은 "가져 오기"종속성이 생성됩니다. 동일한 네임 스페이스 (예 : 주소록)를 사용하여 가져 오기를 의미하지는 않는 TS를 알 수있는 방법이 있다면 제 질문이었습니다. 정상적인 // 명령을 조사했지만 작동하지 않습니다. 나는 심지어 지금까지 성공하지 못한 * .d.ts 선언 파일을 시도했다.
이것은 정확하게 지금하고있는 일입니다. 가져 오기를 통해 각 모듈을 개별적으로로드합니다. 그러나 눈치 채면 코드와 수많은 의존성이 낭비됩니다. 동일한 네임 스페이스 (예 : 주소록)를 사용하여 가져 오기를 의미하지는 않는 TS를 알 수있는 방법이 있다면 제 질문이었습니다. 정상적인 // 명령을 조사했지만 작동하지 않습니다. –
IgorM
이 경우 Contacts 모듈을 내보내지 말고 모든 파일에서 '모듈 연락처 {...}'로 정의하고 /// <참조 .. /> (내부 모듈에서 작동)를 사용하여 TS 그들을 찾아서 'export var contacts = Contacts;'가있는 AMD 모듈 용 새 파일을 만듭니다. 그래서 AMD를 통해 전체 내용을로드 할 수 있습니다. 내보내는 var가 모듈과 정확히 일치하지 않는지 확인해야합니다. 그렇지 않으면 방출 된 코드가 작동하지 않습니다. 불행히도이 순간에 코드 데모를 작성할 수는 없지만 필요한 경우 나중에 할 수 있습니다. – nxn
좀더 생각해 보면, 각 모듈을 자신의 js 파일에 출력하는 makefile을 만들어야 할 수도 있습니다. – nxn