내 TypeScript 프로젝트에서 네임 스페이스로 구성된 여러 파일에 걸쳐 클래스와 인터페이스를 사용합니다. C#/.NET에서 사용하는 것과 같습니다.가져 오기 TypeScript 네임 스페이스 (C# /. NET에서)
IDispatcher.ts :
namespace Dispatcher {
export interface IDispatcher {
Dispatch(msg: string): Promise<string>;
}
}
DispatcherImpl.ts :
namespace Dispatcher {
export class Dispatcher implements Dispatcher.IDispatcher {
Dispatch(msg: string): Promise<string> {
return new Promise<string>((resolve, reject) => {
resolve('result');
});
}
}
}
Test.ts :
모든 (target
및 module
= es6
사용) 자바 스크립트 미세 컴파일합니다. 내가 node test.js
을 실행할 때 나는 import DispatcherImpl
하려고 할 때이 File 'DispatcherImpl.ts' is not a module
한다고
는하지만 난 오류
this.dispatcher = new Dispatcher.Dispatcher();
^
ReferenceError: Dispatcher is not defined
를 얻을. 그리고 require('DispatcherImpl.ts')
은 단지 any
으로 해결되며 예상대로 작동하지 않습니다.
그래서 TypeScript 네임 스페이스가 .NET 네임 스페이스와 비슷하게 동작 할 것으로 기대합니다. 그러나 그것이 전혀 아닌 것처럼 보입니다. 내 인터페이스와 클래스를 정렬하는 올바른 방법과 다른 클래스가이를 사용/가져 오는 방법은 무엇입니까? 아마도 TypeScript 컴파일러가 네임 스페이스를 자동으로 확인하도록하는 방법이 있을까요?
사실 미래를 생각하면 더 이상 네임 스페이스를 사용하지 않아야합니다. ES6에서 각 파일은 모듈입니다. 어쨌든 당신은 어떻게 물건을 수입하고 있습니까? '/// reference'와 함께? – iberbeu
힌트는 Tahnks. 실제로 TSC가 아무런 오류없이 작동하기 때문에 현재 가져 오기 및 참조 경로가 없습니다. – Peopleware
그것은 모두 많은 것에 달려 있습니다. 당신의 문제는 컴파일 될 때 다른 파일이 올바른 순서를 얻지 못하고 JS가 찾지 못한다는 것입니다. tsconfig.json의 구성 확인 시도 – iberbeu