TypeScript的依赖性排序器

时间:2013-01-11 09:17:36

标签: javascript 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

会发生这种情况,因为Module2 JS引用应该包含在Module1之内。当我有这样的周期时,如何解决问题?有可能吗?

2 个答案:

答案 0 :(得分:2)

在面向对象编程中,它有助于使依赖关系在单一方向上流动。使Module1取决于Module2以及Module2取决于Module1将导致问题,即使在允许循环依赖的语言中也是如此。

您应该能够通过拥有依赖于Module1和Module2的Module3来解决问题 - 而不依赖于Module3。在这个例子中,我假设B依赖于C而D取决于A:

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 {
   }
}

答案 1 :(得分:2)