1

我在TypeScript. 如何对它们进行排序以使一切正常?有什么工具吗?

问题看起来像这样......我有 2 个模块:

module Module1 {
   export class A {
   }

   export class B {
   }
}

module Module2 {
   export class C {
   }

   export class D {
   }
}

Module1使用来自 的类Module2Module2使用来自 的类Module1。所以这是一种循环(在模块上)。现在当我将它编译成JavaScript我得到一个错误:

Microsoft JScript runtime error: 'Module2' is undefined

它发生了,因为Module2 JS引用应该包含在Module1. 当我有这样的循环时,如何解决这个问题?是否可以?

4

2 回答 2

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 {
   }
}
于 2013-01-11T10:28:24.913 回答
2

我有一个专门用于此目的的 grunt 插件:https ://github.com/basarat/grunt-ts#javascript-generation-and-ordering

另请查看视频教程:http ://www.youtube.com/watch?v=0-6vT7xgE4Y&hd=1

于 2013-10-29T10:15:42.313 回答