{ "root": true, "parser": "@typescript-eslint/parser", "plugins": [ "@typescript-eslint", "eslint-plugin-tsdoc" ], "parserOptions": { "project": "./tsconfig.json", "tsconfigRootDir": ".", "ecmaVersion": 2018, "ecmaFeatures": { "jsx": true }, "sourceType": "module" }, "settings": { "react": { "version": "detect" } }, "rules": { "quotes": ["error", "double", { "allowTemplateLiterals": true }], "semi": "error", "indent": ["error", 2, { "FunctionDeclaration": { "parameters": "first" } }], "eol-last": ["error", "always"], "object-shorthand": ["error", "always"], "no-unused-vars": 0, "no-lonely-if": "warn", "no-trailing-spaces": "warn", "no-whitespace-before-property": "warn", "space-before-blocks": "warn", "space-in-parens": ["warn", "never"], "space-infix-ops": "warn", "eqeqeq": "warn", "react/display-name": 0, "react/prop-types": 0, "react/jsx-uses-react": "off", "react/react-in-jsx-scope": "off", "tsdoc/syntax": "warn", "@typescript-eslint/no-explicit-any": 0, "@typescript-eslint/explicit-module-boundary-types": ["warn", { "allowArgumentsExplicitlyTypedAsAny": true, "allowDirectConstAssertionInArrowFunctions": true, "allowedNames": [], "allowHigherOrderFunctions": true, "allowTypedFunctionExpressions": true }], "@typescript-eslint/consistent-type-definitions": ["error", "interface"], "@typescript-eslint/member-delimiter-style": ["error", { "multiline": {"delimiter": "semi", "requireLast": true}, "singleline": {"delimiter": "semi", "requireLast": false} }], "@typescript-eslint/no-unused-vars": ["warn", { "ignoreRestSiblings": true, "argsIgnorePattern": "^_" }], "@typescript-eslint/no-non-null-assertion": 0, "@typescript-eslint/space-before-function-paren": ["warn", { "anonymous": "never", "named": "never", "asyncArrow": "always" }] }, "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:react/recommended", "plugin:react-hooks/recommended" ] }