2016-08-12 3 views
1

내 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 :


모든 (targetmodule = 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 컴파일러가 네임 스페이스를 자동으로 확인하도록하는 방법이 있을까요?

+0

사실 미래를 생각하면 더 이상 네임 스페이스를 사용하지 않아야합니다. ES6에서 각 파일은 모듈입니다. 어쨌든 당신은 어떻게 물건을 수입하고 있습니까? '/// reference'와 함께? – iberbeu

+0

힌트는 Tahnks. 실제로 TSC가 아무런 오류없이 작동하기 때문에 현재 가져 오기 및 참조 경로가 없습니다. – Peopleware

+0

그것은 모두 많은 것에 달려 있습니다. 당신의 문제는 컴파일 될 때 다른 파일이 올바른 순서를 얻지 못하고 JS가 찾지 못한다는 것입니다. tsconfig.json의 구성 확인 시도 – iberbeu

답변

0

Currently TypeScript의 네임 스페이스에 대한 include oder import 문이 없습니다.

나는 tsconfig.json outFile 옵션을 사용하여 해결 방법을 발견

"outFile": "test.js" 

모든 타이프 라이터 코드는 하나의 자바 스크립트 파일로 변환됩니다이 방법을.
올바른 순서로 배열되기 위해서는 모든 TypeScript 파일이 예를 들어 그 종속성을 정의해야합니다.

/// <reference path="DataModel/Common.ts" /> 
관련 문제