2013-10-28 97 views
0

我不確定如何去做這件事,也許我做錯了。我需要通過不同的文件(TypeScript的JS輸出顯示它們在執行時將「合併」)傳播相同模塊('A')。實例:合併兩個導出的模塊

---File1.ts--- 
export module A { export class X { } } 

---File2.ts--- 
export module A { export class Y extends X { } } 

這當然包裝在模塊「定義()」函數,但AX file2中示出了在Visual Studio中的錯誤,它不存在(以及智能感知不顯示它) 。如上所示,可以這樣做嗎?我知道我必須使用「import varname = require(...);」,但這似乎沒有任何幫助。

順便說一句:我知道使用引用,並沒有幫助。

看到這裏的一個例子:http://goo.gl/zlVKRv - JS代碼清楚地顯示了加載多個同名組合模塊的支持,所以我不確定爲什麼編譯器和intellisense不起作用。對我來說就像一個錯誤。

只是爲了重申:主要問題是我需要編譯器和智能感知從file2「看到」依賴模塊。

我希望做的是這樣的:

import mod = require("test1"); 
import A = mod.A; 

export module A { 
    export class Y extends X { 
    } 
} 

更新1:提交此相關的請求將上述工作過程中,或至少類似的東西: https://typescript.codeplex.com/workitem/1846

更新2:似乎這個能力是在團隊的雷達! 8)真正的答案應該及時到來。

回答

2

這是不可能的。您需要使用完全限定名稱參考X,例如:

---File1.ts--- 
export module A { export class X { } } 

---File2.ts--- 
import f1 = require('./File1'); 
export module A { export class Y extends f1.A.X { } } 
+0

順便說一句:我從來沒有說過我想編譯成一個模塊;再讀一遍。 –

+0

「我需要將SAME模塊分佈到不同的文件中」。該聲明意圖是什麼? –

+0

那麼,看看示例代碼,你會看到。 –

-1

如果您使用VisualStudio,請將File1.ts拖放到File2.ts編輯器中,這將有助於IDE瞭解A.X.

+0

我知道使用引用,但它沒有幫助。 –

+3

您不應在外部模塊之間使用引用標籤。 –

+0

如果他會公佈遊樂場參考資料,我不會這樣回答我的問題。 –