问题描述
我在下面遇到了一些代码片段,其中包含对类型引用的循环导入依赖。
// Foo.ts
import { Bar } from './Bar';
export interface Foo {
isBarOK: (bar: Bar) => boolean;
}
// Bar.ts
import { Foo } form './Foo';
export class Bar {
protected readonly foo: Foo;
}
这是简化版本,但可以解释我遇到的情况。 tsc
编译代码没有问题,但是我从import/no-cycle ESLint规则得到了警告。我们可以看到Foo
和Bar
互相引用进行输入。这是不好的做法吗?这意味着什么?
解决方法
纯打字稿文件不会输出到您的捆绑软件中,因此您可以放心地忽略它。
但是要小心使用javascript文件,循环导入可能会使摇晃的树变得混乱