【发布时间】:2017-04-20 08:35:36
【问题描述】:
假设我有两个文件,A.js 和 B.js。两者都需要像这样相互引用。
A.js
import { B } from "b"
export class A {
constructor(public name: string) {}
}
let b = new B();
b.print(new A("This is a random name"));
B.js
import { A } from "a"
export class B {
print(a: A) {
console.log(a.name);
}
}
上面的示例将创建一个循环引用,该引用当前在我使用的 JavaScript 运行时中不起作用。 B.js 文件实际上只需要类型信息,而不需要实际的导出对象)。我希望 A.js 中的类型进行静态类型检查。这可能吗?
【问题讨论】:
-
你不能把
class A移动到一个不同的文件,当你想做b.print(...)的时候把它们都导入吗? -
或者更好的是,只需为 B 制作一个放在不同文件中的接口,并让其他两个文件都使用它。
-
这就是循环依赖的定义。你只需要打破这种依赖...
A没有理由需要引用B。将其余代码移到别处。 -
如果您使用的是 typescript,请使用类型
标签: typescript