2012-11-13 1 views
0

나는 최근에 질문을했지만 실제로 대답을 이해할 수 없었다. 여기에 내가 이해할 수 있었던 것이있다. 누군가 네가 네임 스페이스가있는 C#과 비슷한 일을하는 올바른 방법인지 확인해 줄 수 있습니까? 아래 세 개의 파일이 있습니다 그들은 모두 서로에 대한 참조를 가지고 있지만이 여기에 표시되지 않습니다typescript를 사용하여 javascript 네임 스페이스를 만드는 올바른 방법입니까?

여기
/Admin/dialog/start.ts 
module Admin.dialog { 
    export function x() { }; 
    Admin.grid.y(); // executes the function inside of file2.ts 
} 

/Admin/dialog/file1.ts 
module Admin.dialog { 
    export function y() { }; 
} 

/Admin/grid/file2.ts 
module Admin.grid { 
    export function y() { }; 
} 

답변

2

내 제안 구조 :

./Admin/Dialog.ts

module Admin { 
    export class Dialog { 
     x() { 
      this.y(); 
     } 

     y() { 

     } 
    } 
} 

./Admin/Grid.ts

module Admin { 
    export class Grid { 
     y() { 
     } 
    } 
} 

다음과 같은 모듈을 사용할 수 있습니다.

///<reference path="./Admin/Dialog.ts" /> 
///<reference path="./Admin/Grid.ts" /> 

var dialog = new Admin.Dialog(); 
dialog.x(); 

var grid = new Admin.Grid(); 
grid.y(); 
+0

감사합니다. 내가 확신 할 수없는 단 한가지는/Admin/Dialog/디렉토리에 많은 기능을 가지고 있으며이 기능들 각각은 그들 자신의 파일에있다. 예를 들어 함수 x(), y() 및 z()에 대한 x.ts 및 y.ts 및 z.ts가 있습니다. 이 시나리오를 감안할 때 모듈을 사용하는 것이 어떻겠습니까? –

+0

"Admin"모듈의 "Dialog"클래스에 관련된 모든 기능을 관련되어 있으며 같은 이유로 변경 될 가능성이 있으므로이 기능을 모두 옮깁니다. – Fenton

관련 문제