共有三个.ts
文件,a.ts
和b.ts
相互循环导入,而c.ts
同时导入a.ts
和b.ts
。
在检查 c.ts
时,我希望 ESLint 报告循环依赖。
但出于某种原因,运行 yarn eslint src/c.ts
不会引发任何错误!!!
a.ts
:
import y from "./b";
const x: number = y + 1;
export default x;
b.ts
:
import x from "./a";
const y: number = x + 1;
export default y;
c.ts
:
import x from "./a";
import y from "./b";
console.log(x, y);
和.eslintrc.json
:
{
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript"
],
"plugins": ["@typescript-eslint", "import"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./tsconfig.json"
},
"settings": {
"import/extensions": [".js", ".jsx", ".ts", ".tsx"],
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"]
}
},
"rules": {
"import/no-cycle": [
"error",
{
"maxDepth": 10,
"ignoreExternal": true
}
]
}
}
github 存储库:https://github.com/Yaojian/no-cycle-test
答案 0 :(得分:0)
它不会在 c.ts
文件中引发 lint 错误,因为循环依赖位于 a.ts
和 b.ts
之间。 ESLint no-cycle rule description.