Búsqueda de sitios web

¿Cómo configurar la regla `no-cycle` en eslint-plugin-import para TypeScript?


Hay tres archivos .ts, a.ts y b.ts se importan circularmente entre sí, mientras que c.ts importa tanto a.ts como b.ts.

Al revisar c.ts, espero que ESLint informe sobre la dependencia circular.

Pero por alguna razón, ejecutar yarn eslint src/c.ts NO genera ningún error !!!

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);

y el .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
      }
    ]
  }
}

El repositorio de GitHub: https://github.com/Yaojian/no-cycle-test

Respuesta #1

No generará el error de lint en el archivo c.ts porque la dependencia circular está entre a.ts y b.ts. Descripción de la regla no-cycle de ESLint.

archivo a.ts

archivo b.ts

Artículos relacionados