Dav*_*len 15 module typescript
看起来这是不允许的.requireJS在以下内容上抛出一个错误(这个帖子不同,因为它是用内部模块解决的):
element.ts:
import runProperties = require('./run-properties');
export class Element {
public static factory (element : IElement) : Element {
switch (element.type) {
case TYPE.RUN_PROPERTIES :
return new runProperties.RunProperties().deserialize(<runProperties.IRunProperties>element);
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
运行properties.ts:
import element = require('./element');
export class RunProperties extends element.Element implements IRunProperties {
}
Run Code Online (Sandbox Code Playgroud)
Wir*_*rie 25
不,模块不能具有循环依赖关系,除非它们位于同一文件中.每个文件都是按顺序同步处理的,所以当它转到第二个文件时,完整的文件定义(包括所有导出)都没有完成,第二个文件立即尝试要求/引用第一个文件,依此类推.
通常,您可以通过将接口或基类引入公共定义文件(仅基本上是接口)并让其他文件将其用作公共"接口"而不是直接引用类来打破循环依赖.这是许多平台中的典型模式.