2013-01-11 68 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 { 
    } 
}