2015-05-24 98 views
1

我有以下情況:引用嵌套打字稿模塊

/*file A/Z.ts*/ 
///<reference path="B/Y.ts"/> 
module A{ 
    import Y = B.Y; 
    export class Z{ 
     //use class Y 
    } 
} 


/*file A/B/Y.ts*/ 
///<reference path="../Z.ts"/> 
module A.B{ 
    import Z = A.Z; 
    export class Y{ 
     //use class Z 
    } 
} 

這似乎編譯罰款,但是我得到的JavaScript的問題。 在chrome dev控制檯中調用var y = new Y()時,我得到:Uncaught TypeError: undefined is not a function並查看生成的JavaScript IntelliJ代碼檢查注意到B是私有的,無法訪問。

值得注意的是,我所有的.ts都被編譯成一個文件。

編輯:在進一步檢查它是一個訂購問題。在生成的javascript中移動聲明可修復JavaScript錯誤。 只有當我開始在模塊中包裝我的類時纔會出現這個問題。即排序很好,因此我認爲我所有的裁判都很好。

TSC版本是1.5.0-β

回答

0

因爲我認爲這是一個排序問題。我通過重新檢查我的///<reference path=""/>聲明並從Y.ts中刪除///<reference path="../Z.ts"/>來解決問題。

通過this 看完之後似乎並不需要它,因爲編譯器將已經加載Z.ts這一階段,包括它只是改變了排序。