2014-07-02 252 views
0

我想了解如何使用Typescript模塊組織我的代碼。 這裏是我的以下建築:Typescript:導入模塊

~ src app SubModule1 (folder) Class1.ts components Component1.ts (require to create class 1) MainModule.ts

// Class1.ts

module MainModule.SubModule1 { 
    export class Class1 { 
     // some code 
    } 
} 

// Component1.ts

import MainModule = require("MainModule"); 
export class { 
    constructor() { var test = new MainModule.SubModule1.Class1; } 
} 

// MainModule.ts

module MainModule { 
    export var config = "config"; 
} 

export = MainModule; 

Component1類找到MainModule很好,但我無法訪問SubModule1類。 有人可以解釋我做錯了什麼嗎?

謝謝。

+0

順便說一句,我閱讀http://stackoverflow.com/questions/12845810/typescript-module-namespacing-in-multiple-files,但我無法使它的工作。 – user2465083

+0

內部與外部模塊https://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1 – basarat

回答

1

簡單的回答是,你需要將其導入過,但長期的答案是,你應該使用外部模塊時掉落module聲明...

// Class1.ts

export class Class1 { 
    // some code 
} 

// Component1.ts

import MainModule = require("../MainModule"); 
import SubModule = require("../app/SubModule1/Class1"); 

export class { 
    constructor() { 
     var test = new SubModule.Class1(); 
    } 
} 

// MainModule.ts

export var config = "config"; 
+0

謝謝你的回答,所以我試着按照你的代碼,但在component1.ts中,導入第二個文件I有以下錯誤:模塊不能被別名爲非模塊類型 – user2465083

+0

此外,爲什麼我不應該自己指定模塊的名稱,以便使代碼可被發現? – user2465083

+0

@ user2465083,因爲每個文件都是一個模塊 – basarat