#typescript #eslint
Вопрос:
Есть три .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
Ответ №1:
Это не вызовет ошибку lint в c.ts
файле, потому что циклическая зависимость находится между a.ts
и b.ts
. Описание правила ESLint без цикла.
Комментарии:
1. Я думаю
maxDepth
, что опция означает проверку импортированных модулей изc.ts
?