2014-04-13 4 views
5

나는 (Typescript로 작성된) 외부 클래스를 requireJS를 사용하여 다른 Typescript 클래스로 가져 오려고합니다. 나는이 구문을 사용하지만이 import 문을 구문 오류를 받고 있어요 왜 이해가 안 :Typescript의 가져 오기 외부 모듈을 해결할 수 없습니다

enter image description here

나는 또한 대신 사용하여 시도했다

:

import t = module("Controller/TestController"); 

그리고 나 ' 또한 동일한 오류가 발생합니다.

위의 import/require 문은 appmod.ts에 있습니다. 이것은 내 파일 구조입니다.

+Root 
    +Scripts 
    +app 
     -main.ts 
     -appmod.ts 
     +Controller 
     -TestController.ts 

설명서를 살펴본 결과,이 라인은 저에게 아주 잘 보입니다. TestController.ts 파일은 경로에 존재하며 클래스는 export 키워드 앞에 추가됩니다.

이 줄에 무엇이 잘못 되었나요?

/// <reference path="../typings/angularjs/angular.d.ts" /> 

module testApp.Controller { 
    export interface ITestScope extends ng.IScope { 
     helloString:string; 
    } 

    export class TestController { 

     public static $inject = [ 
      "$scope" 
     ]; 


     constructor(private $scope: ITestScope) { 
      this.$scope.helloString = "Hello!"; 
     } 
    } 

} 

내가 사용했습니다 DefinitelyTyped의 AngularJS와 정의를 내 TestController.js에 :

이 내 TestController.ts 모양 방법이다.

답변

3

내보내기 명령문은 파일의 루트 수준에 있어야합니다. 중복 모듈 제거 http://m.youtube.com/watch?v=KDrWLMUY0R0&hd=1

'module testApp.Controller'모듈을 삭제하십시오.

+0

고마워요! testApp.Controller 모듈을 제거하면 제대로 작동합니다. 하지만 여전히 궁금해서 왜 RequireJS를 통해 내 angularj 컨트롤러와 서비스에 네임 스페이스를 사용할 수 없습니까? – Carven

+0

각 파일은 AMD/CommonJS 환경의 모듈입니다 – basarat

+0

모듈에 내보내기를 접두사로 사용하면 여전히 사용할 수 있습니다. 나는. '수출 모듈'하지만 쓸데없는 문자들입니다. – basarat

관련 문제