{ "extends": ["airbnb", "airbnb/hooks", "prettier"], "parser": "@babel/eslint-parser", "parserOptions": { "babelOptions": { "presets": [ "@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript" ], "plugins": ["@babel/plugin-transform-runtime"] } }, "plugins": ["html", "react"], "rules": { "no-param-reassign": 1, "react/prop-types": 0, "react/jsx-props-no-spreading": 0, "import/extensions": [ "error", "ignorePackages", { "js": "never", "jsx": "never", "ts": "never", "tsx": "never" } ], "import/no-extraneous-dependencies": [ "error", { "devDependencies": true, "optionalDependencies": false, "peerDependencies": false } ], "react/function-component-definition": [ 0, { "namedComponents": "function-declaration" } ] }, "settings": { "import/resolver": { "node": { "extensions": [".js", ".jsx", ".ts", ".tsx"] } } }, // eslint that apply only to typescript files "overrides": [ { "files": ["*.ts", "*.tsx"], "extends": ["airbnb-typescript", "prettier"], "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint"], "parserOptions": { "project": "./tsconfig.json" }, "rules": { "react/require-default-props": 0, "@typescript-eslint/no-explicit-any": 1 } } ] }