随着项目规模的不断增长,循环引用问题似乎总是不可避免,本文就 TypeScript 中可能出现的循环引用问题做了一些简单记录~
平时编写 TypeScript 代码时,一般都倾向于使用模块(Module...(尽管这个结果可能是不完整的),而不是递归的进行模块的导入操作,还是拿上面的代码举例,假设我们首先导入 A 模块:
A 模块尝试导入 B 模块
由于 B 模块尚未导入,程序开始导入 B 模块
B 模块尝试导入...A 模块的导出数据中(export class A)
A 模块尝试导入 C 模块
由于 C 模块尚未导入,所以我们开始导入 C 模块
C 模块尝试导入 B 模块
由于 B 模块尚未导入,所以我们开始导入...A 的定义, 类型 B 可以正常定义导出
B 模块将类型 B 加入到 B 模块的导出数据中(export class B)
B 模块导入完成,继续 C 模块的导入
类型 C 继承 类型 B,尝试在当前...(B 模块)导入结果中访问类型 B 的定义
当前(B 模块)导入结果中存在类型 B 的定义, 类型 C 可以正常定义导出
C 模块导入完成, 继续 A 模块的导入
A 模块导入完成
但是如果我们尝试首先导入