随着项目规模的不断增长,循环引用问题似乎总是不可避免,本文就 TypeScript 中可能出现的循环引用问题做了一些简单记录~
平时编写 TypeScript 代码时,一般都倾向于使用模块(Module...(之前关于这个话题自己也写过一篇博文),而实际上,TypeScript 中的 import 和 export 是可以处理循环引用的:
当 import 遇到导入完毕或者说正在导入的模块(文件)时,是直接返回导入结果的...(export class B)
B 模块导入完成,继续 A 模块的导入
将类型 A 加入到 A 模块的导出数据中(export class A)
A 模块导入完成
值得注意的是,上述的这种循环引用处理方式是不完备的...,该方式并不能正确处理更复杂一些的循环引用情况(主要是在一些需要及时访问模块导出数据的情况下,譬如类继承(extends),静态引用等等)
考虑下面的循环引用情况:
import { C } from...,其实有一个技巧可以解决上面的问题:在不需要及时访问模块导出数据的情况下,我们可以将模块的导入操作后置.