Estoy trabajando en un proyecto que tiene una combinación de archivos TypeScript y JavaScript y estoy tratando de configurar reglas de linting para ellos. Estoy usando ESLint para filtrar los archivos JS y el complemento TypeScript eslint para filtrar los archivos TypeScript. Dado que la base de código a la que estoy agregando pelusa es bastante grande, tuve que desactivar algunas reglas para JS y TS. Esto resultó ser un poco problemático cuando traté de crear el archivo de configuración para ESLint. En mi archivo de configuración. Tenía el conjunto principal de reglas para los archivos JS y luego creé una sección de anulación para los archivos *.ts donde puedo usar las reglas de pelusa mecanografiadas. Mi archivo de configuración se parece a lo siguiente (la sección de reglas es solo representativa).
{ "extends": "eslint:recommended", "rules": { "no-unused-vars": "off", "no-undef": "error", "max-classes-per-file": "off" }, "env": { "es6": true, "browser": true }, "parserOptions": { "ecmaVersion": 10 }, "overrides": [ { "files": [ "*.ts" ], "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended" ], "rules": { "@typescript-eslint/no-unsafe-argument": "off", "@typescript-eslint/no-unsafe-member-access": "off" }, "parserOptions": { "project": "tsconfig.json" } } ] }
Tuve que crear una sección de anulación para los archivos TS, ya que no todos los archivos JS estaban incluidos en tsconfig.json, lo que se volvió problemático al tratar de eliminar todos los archivos JS y TS a través de la misma configuración.
El problema con el que ahora me encuentro es que crear la sección de anulación para los archivos TS ahora ignora por completo las anulaciones de reglas que había hecho en la sección JS y termino teniendo que configurar cada regla ESLint tanto en la configuración JS como la anulación que tengo para el archivos TS. ¿Hay alguna manera de combinar reglas de la sección principal en la anulación para que solo agregue reglas adicionales en lugar de reemplazarlas por completo?
Puede agregar una segunda anulación para los archivos *.js y *.ts y deshabilitar las reglas allí, es decir:
{ "extends": "eslint:recommended", "rules": { "no-undef": "error" }, "env": { "es6": true, "browser": true }, "parserOptions": { "ecmaVersion": 10 }, "overrides": [ { "files": [ "*.ts" ], "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended" ], "rules": { "@typescript-eslint/no-unsafe-argument": "off", "@typescript-eslint/no-unsafe-member-access": "off" }, "parserOptions": { "project": "tsconfig.json" } }, { "files": [ "*.js", "*.ts" ], "rules": { "no-unused-vars": "off", "max-classes-per-file": "off" } } ] }