{ "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint"], "extends": [ "airbnb-typescript", "airbnb/hooks", "plugin:@typescript-eslint/recommended" ], "parserOptions": { "project": "./tsconfig.json", "sourceType": "module", "createDefaultProgram": true }, "rules": { "no-console": 0, "prefer-destructuring": ["error", {"object": true, "array": true}], "object-curly-spacing": 1, "operator-linebreak": ["error", "before", { "overrides": { "=": "after" } }], "no-unused-expressions": ["warn", { "allowShortCircuit": true, "allowTernary": true }], // https://eslint.org/docs/rules/no-unused-expressions "@typescript-eslint/prefer-interface": "off", "import/prefer-default-export": "off", "@typescript-eslint/explicit-function-return-type": ["error", { "allowExpressions": true }], "@typescript-eslint/no-explicit-any": "warn", "global-require": 0, "@typescript-eslint/ban-ts-comment": 0, "max-len": ["error", {"code": 120}] }, "overrides": [ { "files": [ "*.test.ts" ], "rules": { "@typescript-eslint/no-use-before-define": 0, "no-multi-assign": 0, "operator-linebreak": 0, "no-unused-expressions": 0 } } ], "settings": { "react": { "version": "latest" }, "import/extensions": [".ts",".tsx"], "import/parsers": { "@typescript-eslint/parser": [".ts",".tsx"] }, "import/resolver": { "node": { "extensions": [".js",".jsx",".ts",".tsx"] } } }, "env": { "commonjs": true, "node": true, "jest": true, "es6": true }, "ignorePatterns": ["dist/*"] }