2013-01-11 72 views
1

我在TypeScript中存在依賴關係問題。如何對它們進行排序以使一切正常工作?有沒有任何工具?TypeScript的依賴關係排序器

的問題是這樣的......我有2個模塊:

module Module1 { 
    export class A { 
    } 

    export class B { 
    } 
} 

module Module2 { 
    export class C { 
    } 

    export class D { 
    } 
} 

Module1使用從Module2類和Module2使用類從Module1。所以這是一種循環(在模塊上)。現在,當我把它編譯成JavaScript我得到一個錯誤:

Microsoft JScript runtime error: 'Module2' is undefined

它發生,因爲Module2JS引用應當被包括在Module1。如何解決問題,當我有這樣的週期?可能嗎?

回答

2

在面向對象編程中,它有助於使依賴關係朝單一方向流動。即使在允許循環依賴的語言中,Module1依賴於Module2,而Module2依賴於Module1也會導致問題。

您應該可以通過使Module3與Module1和Module2都相互依賴來解決問題 - 而不依賴於Module3。在這個例子中,我假設B依賴於C和d取決於答:

module Module1 { 
    export class A { 
    } 
} 

module Module2 { 
    export class C { 
    } 
} 

module Module3 { 
    export class B { 
    } 

    export class D { 
    } 
} 

另一種解決方案可以接受,如果這兩個模塊有這麼多的依賴關係 - 他們也許應該僅僅是一個單獨的模塊。

module Module1 { 
    export class A { 
    } 

    export class B { 
    } 

    export class C { 
    } 

    export class D { 
    } 
}