【发布时间】:2016-05-18 17:43:42
【问题描述】:
我在一个非常大的项目中使用带有--module system (SystemJS) 的 TypeScript。 SystemJS 支持循环依赖,并且大部分时间都可以正常工作。然而,当涉及到 TypeScript 继承时,事情就开始崩溃了。
例如,如果class A 依赖于class B,并且class B 继承来自class A,那么如果首先加载class A:
- 它将暂停
class A's解析并尝试加载class B依赖项 -
class B会认为它的依赖关系已解决,因为class A已被触及。 -
class B's继承将无法解析,因为class A仍未定义。
我可以在网上找到的大多数与模块加载器循环依赖的“解决方案”是:
- 更改您的设计/将类合并到一个模块中
- CommonJS 和非 TypeScript 特定的解决方法
我觉得循环设计有充分的理由,将类组合成巨型文件并不总是可取的,因此请考虑这些变通方法与我所问的问题无关。
对于实际问题有什么解决方案吗?
【问题讨论】:
标签: typescript ecmascript-6 circular-dependency systemjs es6-module-loader