| Rule | Status | Configuration |
|---|---|---|
| @stylistic/array-bracket-spacing @stylistic Enforce consistent spacing inside array brackets |
warn | [ "never" ] |
| @stylistic/arrow-spacing @stylistic Enforce consistent spacing before and after the arrow in arrow functions |
warn | [
{
"before": true,
"after": true
}
] |
| @stylistic/block-spacing @stylistic Disallow or enforce spaces inside of blocks after opening block and before closing block |
warn | [ "always" ] |
| @stylistic/comma-dangle @stylistic Require or disallow trailing commas |
warn | [
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "always-multiline",
"enums": "always-multiline",
"generics": "always-multiline",
"tuples": "always-multiline"
}
] |
| @stylistic/comma-spacing @stylistic Enforce consistent spacing before and after commas |
warn | [
{
"before": false,
"after": true
}
] |
| @stylistic/comma-style @stylistic Enforce consistent comma style |
warn | [ "last" ] |
| @stylistic/computed-property-spacing @stylistic Enforce consistent spacing inside computed property brackets |
warn | [
"never",
{
"enforceForClassMembers": true
}
] |
| @stylistic/dot-location @stylistic Enforce consistent newlines before and after dots |
warn | [ "property" ] |
| @stylistic/eol-last @stylistic Require or disallow newline at the end of files |
warn | [ "always" ] |
| @stylistic/function-call-argument-newline @stylistic Enforce line breaks between arguments of a function call |
warn | [ "consistent" ] |
| @stylistic/function-call-spacing @stylistic Require or disallow spacing between function identifiers and their invocations |
warn | [ "never" ] |
| @stylistic/indent @stylistic Enforce consistent indentation |
warn | [
4,
{
"SwitchCase": 1,
"flatTernaryExpressions": false,
"ignoredNodes": []
}
] |
| @stylistic/jsx-quotes @stylistic Enforce the consistent use of either double or single quotes in JSX attributes |
warn | [ "prefer-double" ] |
| @stylistic/key-spacing @stylistic Enforce consistent spacing between property names and type annotations in types and interfaces |
warn | [
{}
] |
| @stylistic/keyword-spacing @stylistic Enforce consistent spacing before and after keywords |
warn | [
{
"before": true,
"after": true,
"overrides": {}
}
] |
| @stylistic/lines-between-class-members @stylistic Require or disallow an empty line between class members |
warn | [
"always",
{
"exceptAfterOverload": true,
"exceptAfterSingleLine": true
}
] |
| @stylistic/max-len @stylistic Enforce a maximum line length |
warn | [ 140, 4 ] |
| @stylistic/member-delimiter-style @stylistic Require a specific member delimiter style for interfaces and type literals |
warn | [
{
"multiline": {
"delimiter": "semi",
"requireLast": true
},
"singleline": {
"delimiter": "semi",
"requireLast": false
},
"multilineDetection": "brackets"
}
] |
| @stylistic/newline-per-chained-call @stylistic Require a newline after each call in a method chain |
warn | [
{
"ignoreChainWithDepth": 3
}
] |
| @stylistic/no-extra-semi @stylistic Disallow unnecessary semicolons |
warn | - |
| @stylistic/no-floating-decimal @stylistic Disallow leading or trailing decimal points in numeric literals |
warn | - |
| @stylistic/no-mixed-spaces-and-tabs @stylistic Disallow mixed spaces and tabs for indentation |
warn | [ false ] |
| @stylistic/no-multi-spaces @stylistic Disallow multiple spaces |
warn | [
{
"exceptions": {
"Property": true,
"ImportAttribute": true
},
"ignoreEOLComments": false,
"includeTabs": true
}
] |
| @stylistic/no-multiple-empty-lines @stylistic Disallow multiple empty lines |
warn | [
{
"max": 1
}
] |
| @stylistic/no-tabs @stylistic Disallow all tabs |
warn | [
{
"allowIndentationTabs": false
}
] |
| @stylistic/no-trailing-spaces @stylistic Disallow trailing whitespace at the end of lines |
warn | [
{
"skipBlankLines": false,
"ignoreComments": false
}
] |
| @stylistic/no-whitespace-before-property @stylistic Disallow whitespace before properties |
warn | - |
| @stylistic/object-curly-spacing @stylistic Enforce consistent spacing inside braces |
warn | [ "always" ] |
| @stylistic/padded-blocks @stylistic Require or disallow padding within blocks |
warn | [
{
"blocks": "never",
"classes": "always",
"switches": "never"
},
{
"allowSingleLineBlocks": false
}
] |
| @stylistic/quote-props @stylistic Require quotes around object literal, type literal, interfaces and enums property names |
warn | [ "as-needed" ] |
| @stylistic/quotes @stylistic Enforce the consistent use of either backticks, double, or single quotes |
warn | [
"single",
{
"allowTemplateLiterals": "never",
"avoidEscape": true,
"ignoreStringLiterals": false
}
] |
| @stylistic/rest-spread-spacing @stylistic Enforce spacing between rest and spread operators and their expressions |
warn | [ "never" ] |
| @stylistic/semi @stylistic Require or disallow semicolons instead of ASI |
warn | [ "always" ] |
| @stylistic/semi-spacing @stylistic Enforce consistent spacing before and after semicolons |
warn | [
{
"before": false,
"after": true
}
] |
| @stylistic/space-before-blocks @stylistic Enforce consistent spacing before blocks |
warn | [ "always" ] |
| @stylistic/space-before-function-paren @stylistic Enforce consistent spacing before function parenthesis |
warn | [
{
"anonymous": "always",
"named": "never"
}
] |
| @stylistic/space-in-parens @stylistic Enforce consistent spacing inside parentheses |
warn | [ "never" ] |
| @stylistic/template-curly-spacing @stylistic Require or disallow spacing around embedded expressions of template strings |
warn | [ "never" ] |
| @stylistic/template-tag-spacing @stylistic Require or disallow spacing between template tags and their literals |
warn | [ "never" ] |
| @stylistic/type-annotation-spacing @stylistic Require consistent spacing around type annotations |
warn | [
{}
] |
| @stylistic/wrap-iife @stylistic Require parentheses around immediate `function` invocations |
warn | [
"outside",
{
"functionPrototypeMethods": false
}
] |
| @typescript-eslint/adjacent-overload-signatures @typescript-eslint Require that function overload signatures be consecutive |
warn | - |
| @typescript-eslint/array-type @typescript-eslint Require consistently using either `T[]` or `Array<T>` for arrays |
warn | [
{
"default": "array-simple"
}
] |
| @typescript-eslint/ban-ts-comment @typescript-eslint Disallow `@ts-<directive>` comments or require descriptions after directives |
warn | - |
| @typescript-eslint/consistent-type-assertions @typescript-eslint Enforce consistent usage of type assertions |
warn | [
{
"assertionStyle": "as"
}
] |
| @typescript-eslint/consistent-type-imports @typescript-eslint Enforce consistent usage of type imports |
warn | [
{
"prefer": "type-imports",
"fixStyle": "inline-type-imports",
"disallowTypeAnnotations": false
}
] |
| @typescript-eslint/default-param-last @typescript-eslint Enforce default parameters to be last |
error | - |
| @typescript-eslint/no-array-constructor @typescript-eslint Disallow generic `Array` constructors |
error | - |
| @typescript-eslint/no-dupe-class-members @typescript-eslint Disallow duplicate class members |
error | - |
| @typescript-eslint/no-duplicate-type-constituents @typescript-eslint Disallow duplicate constituents of union or intersection types |
warn | - |
| @typescript-eslint/no-empty-function @typescript-eslint Disallow empty functions |
warn | [
{
"allow": []
}
] |
| @typescript-eslint/no-explicit-any @typescript-eslint Disallow the `any` type |
warn | [
{
"ignoreRestArgs": true
}
] |
| @typescript-eslint/no-extra-non-null-assertion @typescript-eslint Disallow extra non-null assertions |
warn | - |
| @typescript-eslint/no-for-in-array @typescript-eslint Disallow iterating over an array with a for-in loop |
error | - |
| @typescript-eslint/no-implied-eval @typescript-eslint Disallow the use of `eval()`-like functions |
error | - |
| @typescript-eslint/no-inferrable-types @typescript-eslint Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean |
warn | [
{
"ignoreParameters": true,
"ignoreProperties": true
}
] |
| @typescript-eslint/no-misused-new @typescript-eslint Enforce valid definition of `new` and `constructor` |
error | - |
| @typescript-eslint/no-misused-promises @typescript-eslint Disallow Promises in places not designed to handle them |
error | [
{
"checksVoidReturn": false
}
] |
| @typescript-eslint/no-non-null-asserted-optional-chain @typescript-eslint Disallow non-null assertions after an optional chain expression |
warn | - |
| @typescript-eslint/no-redeclare @typescript-eslint Disallow variable redeclaration |
error | - |
| @typescript-eslint/no-require-imports @typescript-eslint Disallow invocation of `require()` |
warn | - |
| @typescript-eslint/no-shadow @typescript-eslint Disallow variable declarations from shadowing variables declared in the outer scope |
warn | [
{
"ignoreOnInitialization": true
}
] |
| @typescript-eslint/no-this-alias @typescript-eslint Disallow aliasing `this` |
warn | - |
| @typescript-eslint/no-unnecessary-qualifier @typescript-eslint Disallow unnecessary namespace qualifiers |
warn | - |
| @typescript-eslint/no-unnecessary-type-arguments @typescript-eslint Disallow type arguments that are equal to the default |
warn | - |
| @typescript-eslint/no-unused-expressions @typescript-eslint Disallow unused expressions |
warn | [
{
"allowShortCircuit": false,
"allowTaggedTemplates": false,
"allowTernary": true
}
] |
| @typescript-eslint/no-unused-vars @typescript-eslint Disallow unused variables |
warn | [
{
"ignoreRestSiblings": true
}
] |
| @typescript-eslint/no-use-before-define @typescript-eslint Disallow the use of variables before they are defined |
warn | [
{
"functions": false,
"classes": false,
"enums": true,
"variables": true,
"typedefs": false
}
] |
| @typescript-eslint/no-useless-constructor @typescript-eslint Disallow unnecessary constructors |
warn | - |
| @typescript-eslint/only-throw-error @typescript-eslint Disallow throwing non-`Error` values as exceptions |
warn | - |
| @typescript-eslint/prefer-as-const @typescript-eslint Enforce the use of `as const` over literal type |
warn | - |
| @typescript-eslint/prefer-for-of @typescript-eslint Enforce the use of `for-of` loop over the standard `for` loop where possible |
warn | - |
| @typescript-eslint/prefer-includes @typescript-eslint Enforce `includes` method over `indexOf` method |
warn | - |
| @typescript-eslint/prefer-namespace-keyword @typescript-eslint Require using `namespace` keyword over `module` keyword to declare custom TypeScript modules |
error | - |
| @typescript-eslint/prefer-optional-chain @typescript-eslint Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects |
warn | - |
| @typescript-eslint/prefer-string-starts-ends-with @typescript-eslint Enforce using `String#startsWith` and `String#endsWith` over other equivalent methods of checking substrings |
warn | - |
| @typescript-eslint/require-await @typescript-eslint Disallow async functions which do not return promises and have no `await` expression |
error | - |
| @typescript-eslint/triple-slash-reference @typescript-eslint Disallow certain triple slash directives in favor of ES6-style import declarations |
error | - |
| accessor-pairs eslint Enforce getter and setter pairs in objects and classes |
error | [
{
"enforceForTSTypes": false,
"enforceForClassMembers": true,
"getWithoutSet": false,
"setWithoutGet": true
}
] |
| array-callback-return eslint Enforce `return` statements in callbacks of array methods |
error | [
{
"allowImplicit": false,
"checkForEach": false,
"allowVoid": false
}
] |
| arrow-body-style eslint Require braces around arrow function bodies |
warn | [ "as-needed" ] |
| constructor-super eslint Require `super()` calls in constructors |
error | - |
| curly eslint Enforce consistent brace style for all control statements |
warn | [ "all" ] |
| eqeqeq eslint Require the use of `===` and `!==` |
warn | - |
| for-direction eslint Enforce `for` loop update clause moving the counter in the right direction |
error | - |
| func-name-matching eslint Require function names to match the name of the variable or property to which they are assigned |
warn | - |
| func-names eslint Require or disallow named `function` expressions |
warn | [
"always",
{}
] |
| getter-return eslint Enforce `return` statements in getters |
error | [
{
"allowImplicit": true
}
] |
| grouped-accessor-pairs eslint Require grouped accessor pairs in object literals and classes |
warn | [
"anyOrder",
{
"enforceForTSTypes": false
}
] |
| guard-for-in eslint Require `for-in` loops to include an `if` statement |
warn | - |
| jest/consistent-test-it jest Enforce `test` and `it` usage conventions |
error | [
{
"fn": "test",
"withinDescribe": "it"
}
] |
| jest/no-commented-out-tests jest Disallow commented out tests |
error | - |
| jest/no-conditional-expect jest Disallow calling `expect` conditionally |
warn | - |
| jest/no-disabled-tests jest Disallow disabled tests |
warn | - |
| jest/no-duplicate-hooks jest Disallow duplicate setup and teardown hooks |
error | - |
| jest/no-export jest Disallow using `exports` in files containing tests |
error | - |
| jest/no-focused-tests jest Disallow focused tests |
warn | - |
| jest/no-identical-title jest Disallow identical titles |
error | - |
| jest/no-jasmine-globals jest Disallow Jasmine globals |
error | - |
| jest/no-mocks-import jest Disallow manually importing from `__mocks__` |
error | - |
| jest/no-restricted-matchers jest Disallow specific matchers & modifiers |
warn | [
{
"toBeTruthy": "Avoid `toBeTruthy`",
"toBeFalsy": "Avoid `toBeFalsy`"
}
] |
| jest/no-standalone-expect jest Disallow using `expect` outside of `it` or `test` blocks |
error | - |
| jest/no-test-prefixes jest Require using `.only` and `.skip` over `f` and `x` |
warn | - |
| jest/prefer-hooks-on-top jest Suggest having hooks before any test cases |
warn | - |
| jest/prefer-lowercase-title jest Enforce lowercase test names |
warn | [
{
"ignore": [
"describe"
],
"ignoreTopLevelDescribe": false,
"ignoreTodos": false
}
] |
| jest/prefer-to-be jest Suggest using `toBe()` for primitive literals |
warn | - |
| jest/prefer-to-contain jest Suggest using `toContain()` |
warn | - |
| jest/prefer-to-have-length jest Suggest using `toHaveLength()` |
warn | - |
| jest/prefer-todo jest Suggest using `test.todo` |
warn | - |
| jest/require-top-level-describe jest Require test cases and hooks to be inside a `describe` block |
warn | - |
| jest/valid-describe-callback jest Enforce valid `describe()` callback |
error | - |
| jest/valid-expect jest Enforce valid `expect()` usage |
error | - |
| jest/valid-expect-in-promise jest Require promises that have expectations in their chain to be valid |
error | - |
| jest/valid-title jest Enforce valid titles |
warn | - |
| no-await-in-loop eslint Disallow `await` inside of loops |
warn | - |
| no-caller eslint Disallow the use of `arguments.caller` or `arguments.callee` |
error | - |
| no-class-assign eslint Disallow reassigning class members |
error | - |
| no-compare-neg-zero eslint Disallow comparing against `-0` |
error | - |
| no-cond-assign eslint Disallow assignment operators in conditional expressions |
error | [ "except-parens" ] |
| no-console eslint Disallow the use of `console` |
warn | [
{}
] |
| no-const-assign eslint Disallow reassigning `const`, `using`, and `await using` variables |
error | - |
| no-constant-binary-expression eslint Disallow expressions where the operation doesn't affect the value |
error | - |
| no-constructor-return eslint Disallow returning value from constructor |
warn | - |
| no-debugger eslint Disallow the use of `debugger` |
warn | - |
| no-dupe-args eslint Disallow duplicate arguments in `function` definitions |
error | - |
| no-dupe-else-if eslint Disallow duplicate conditions in if-else-if chains |
error | - |
| no-dupe-keys eslint Disallow duplicate keys in object literals |
error | - |
| no-duplicate-case eslint Disallow duplicate case labels |
error | - |
| no-duplicate-imports eslint Disallow duplicate module imports |
error | [
{
"includeExports": false,
"allowSeparateTypeImports": false
}
] |
| no-empty eslint Disallow empty block statements |
warn | [
{
"allowEmptyCatch": true
}
] |
| no-empty-character-class eslint Disallow empty character classes in regular expressions |
warn | - |
| no-empty-pattern eslint Disallow empty destructuring patterns |
warn | [
{
"allowObjectPatternsAsParameters": false
}
] |
| no-eval eslint Disallow the use of `eval()` |
error | [
{
"allowIndirect": false
}
] |
| no-ex-assign eslint Disallow reassigning exceptions in `catch` clauses |
error | - |
| no-extend-native eslint Disallow extending native types |
error | [
{
"exceptions": []
}
] |
| no-extra-bind eslint Disallow unnecessary calls to `.bind()` |
warn | - |
| no-extra-boolean-cast eslint Disallow unnecessary boolean casts |
warn | [
{}
] |
| no-func-assign eslint Disallow reassigning `function` declarations |
error | - |
| no-global-assign eslint Disallow assignments to native objects or read-only global variables |
error | [
{
"exceptions": []
}
] |
| no-implied-eval eslint Disallow the use of `eval()`-like methods |
error | - |
| no-import-assign eslint Disallow assigning to imported bindings |
error | - |
| no-inner-declarations eslint Disallow variable or `function` declarations in nested blocks |
error | [
"functions",
{
"blockScopedFunctions": "allow"
}
] |
| no-invalid-regexp eslint Disallow invalid regular expression strings in `RegExp` constructors |
warn | [
{}
] |
| no-irregular-whitespace eslint Disallow irregular whitespace |
warn | [
{
"skipComments": false,
"skipJSXText": false,
"skipRegExps": false,
"skipStrings": true,
"skipTemplates": false
}
] |
| no-iterator eslint Disallow the use of the `__iterator__` property |
error | - |
| no-labels eslint Disallow labeled statements |
error | [
{
"allowLoop": false,
"allowSwitch": false
}
] |
| no-lone-blocks eslint Disallow unnecessary nested blocks |
error | - |
| no-lonely-if eslint Disallow `if` statements as the only statement in `else` blocks |
error | - |
| no-loop-func eslint Disallow function declarations that contain unsafe references inside loop statements |
error | - |
| no-loss-of-precision eslint Disallow literal numbers that lose precision |
error | - |
| no-misleading-character-class eslint Disallow characters which are made with multiple code points in character class syntax |
error | [
{
"allowEscape": false
}
] |
| no-negated-condition eslint Disallow negated conditions |
warn | - |
| no-nested-ternary eslint Disallow nested ternary expressions |
warn | - |
| no-new-func eslint Disallow `new` operators with the `Function` object |
error | - |
| no-new-native-nonconstructor eslint Disallow `new` operators with global non-constructor functions |
error | - |
| no-new-wrappers eslint Disallow `new` operators with the `String`, `Number`, and `Boolean` objects |
error | - |
| no-nonoctal-decimal-escape eslint Disallow `\8` and `\9` escape sequences in string literals |
warn | - |
| no-obj-calls eslint Disallow calling global object properties as functions |
error | - |
| no-object-constructor eslint Disallow calls to the `Object` constructor without an argument |
error | - |
| no-param-reassign eslint Disallow reassigning function parameters |
warn | - |
| no-proto eslint Disallow the use of the `__proto__` property |
error | - |
| no-script-url eslint Disallow `javascript:` URLs |
error | - |
| no-self-assign eslint Disallow assignments where both sides are exactly the same |
warn | [
{
"props": true
}
] |
| no-self-compare eslint Disallow comparisons where both sides are exactly the same |
error | - |
| no-setter-return eslint Disallow returning values from setters |
error | - |
| no-shadow-restricted-names eslint Disallow identifiers from shadowing restricted names |
error | [
{
"reportGlobalThis": true
}
] |
| no-sparse-arrays eslint Disallow sparse arrays |
warn | - |
| no-template-curly-in-string eslint Disallow template literal placeholder syntax in regular strings |
error | - |
| no-this-before-super eslint Disallow `this`/`super` before calling `super()` in constructors |
error | - |
| no-unexpected-multiline eslint Disallow confusing multiline expressions |
warn | - |
| no-unneeded-ternary eslint Disallow ternary operators when simpler alternatives exist |
warn | [
{
"defaultAssignment": true
}
] |
| no-unreachable eslint Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements |
warn | - |
| no-unreachable-loop eslint Disallow loops with a body that allows only one iteration |
error | [
{
"ignore": []
}
] |
| no-unsafe-negation eslint Disallow negating the left operand of relational operators |
error | [
{
"enforceForOrderingRelations": false
}
] |
| no-unsafe-optional-chaining eslint Disallow use of optional chaining in contexts where the `undefined` value is not allowed |
error | [
{
"disallowArithmeticOperators": false
}
] |
| no-unused-private-class-members eslint Disallow unused private class members |
warn | - |
| no-useless-backreference eslint Disallow useless backreferences in regular expressions |
warn | - |
| no-useless-call eslint Disallow unnecessary calls to `.call()` and `.apply()` |
warn | - |
| no-useless-catch eslint Disallow unnecessary `catch` clauses |
warn | - |
| no-useless-concat eslint Disallow unnecessary concatenation of literals or template literals |
warn | - |
| no-useless-escape eslint Disallow unnecessary escape characters |
warn | [
{
"allowRegexCharacters": []
}
] |
| no-useless-rename eslint Disallow renaming import, export, and destructured assignments to the same name |
warn | [
{
"ignoreDestructuring": false,
"ignoreImport": false,
"ignoreExport": false
}
] |
| no-useless-return eslint Disallow redundant return statements |
warn | - |
| no-with eslint Disallow `with` statements |
error | - |
| object-shorthand eslint Require or disallow method and property shorthand syntax for object literals |
warn | [
"always",
{
"avoidQuotes": true,
"ignoreConstructors": true,
"avoidExplicitReturnArrows": true
}
] |
| one-var eslint Enforce variables to be declared either together or separately in functions |
warn | [
{
"var": "always",
"let": "never",
"const": "never"
}
] |
| playwright/max-nested-describe playwright Enforces a maximum depth to nested describe calls |
error | [
{
"max": 2
}
] |
| playwright/missing-playwright-await playwright Identify false positives when async Playwright APIs are not properly awaited. |
error | - |
| playwright/no-conditional-expect playwright Disallow calling `expect` conditionally |
warn | - |
| playwright/no-duplicate-hooks playwright Disallow duplicate setup and teardown hooks |
warn | - |
| playwright/no-element-handle playwright The use of ElementHandle is discouraged, use Locator instead |
error | - |
| playwright/no-eval playwright The use of `page.$eval` and `page.$$eval` are discouraged, use `locator.evaluate` or `locator.evaluateAll` instead |
error | - |
| playwright/no-focused-test playwright Prevent usage of `.only()` focus test annotation |
warn | - |
| playwright/no-force-option playwright Prevent usage of `{ force: true }` option. |
warn | - |
| playwright/no-get-by-title playwright Disallows the usage of getByTitle() |
warn | - |
| playwright/no-nested-step playwright Disallow nested `test.step()` methods |
warn | - |
| playwright/no-networkidle playwright Prevent usage of the networkidle option |
warn | - |
| playwright/no-page-pause playwright Prevent usage of page.pause() |
error | - |
| playwright/no-standalone-expect playwright Disallow using `expect` outside of `test` blocks |
error | - |
| playwright/no-unsafe-references playwright Prevent unsafe variable references in page.evaluate() and page.addInitScript() |
warn | - |
| playwright/no-useless-await playwright Disallow unnecessary awaits for Playwright methods |
error | - |
| playwright/no-useless-not playwright Disallow usage of 'not' matchers when a more specific matcher exists |
warn | - |
| playwright/no-wait-for-selector playwright Prevent usage of page.waitForSelector() |
warn | - |
| playwright/no-wait-for-timeout playwright Prevent usage of page.waitForTimeout() |
error | - |
| playwright/prefer-hooks-on-top playwright Suggest having hooks before any test cases |
warn | - |
| playwright/prefer-strict-equal playwright Suggest using `toStrictEqual()` |
warn | - |
| playwright/prefer-to-contain playwright Suggest using toContain() |
warn | - |
| playwright/prefer-to-have-count playwright Suggest using `toHaveCount()` |
warn | - |
| playwright/prefer-to-have-length playwright Suggest using `toHaveLength()` |
warn | - |
| playwright/prefer-web-first-assertions playwright Prefer web first assertions |
error | - |
| playwright/valid-describe-callback playwright Enforce valid `describe()` callback |
error | - |
| playwright/valid-expect playwright Enforce valid `expect()` usage |
warn | - |
| playwright/valid-expect-in-promise playwright Require promises that have expectations in their chain to be valid |
error | - |
| prefer-arrow-callback eslint Require using arrow functions for callbacks |
warn | [
{
"allowNamedFunctions": false,
"allowUnboundThis": true
}
] |
| prefer-const eslint Require `const` declarations for variables that are never reassigned after declared |
warn | [
{
"destructuring": "any",
"ignoreReadBeforeAssign": false
}
] |
| prefer-destructuring eslint Require destructuring from arrays and/or objects |
warn | [
{
"VariableDeclarator": {
"array": false,
"object": true
}
}
] |
| prefer-object-has-own eslint Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()` |
warn | - |
| prefer-regex-literals eslint Disallow use of the `RegExp` constructor in favor of regular expression literals |
warn | [
{
"disallowRedundantWrapping": false
}
] |
| prefer-rest-params eslint Require rest parameters instead of `arguments` |
warn | - |
| prefer-spread eslint Require spread operators instead of `.apply()` |
warn | - |
| prefer-template eslint Require template literals instead of string concatenation |
warn | - |
| react-hooks/exhaustive-deps react-hooks verifies the list of dependencies for Hooks like useEffect and similar |
error | - |
| react-hooks/rules-of-hooks react-hooks enforces the Rules of Hooks |
error | - |
| react/button-has-type react Disallow usage of `button` elements without an explicit `type` attribute |
warn | - |
| react/iframe-missing-sandbox react Enforce sandbox attribute on iframe elements |
error | - |
| react/jsx-boolean-value react Enforce boolean attributes notation in JSX |
warn | [ "always" ] |
| react/jsx-closing-bracket-location react Enforce closing bracket location in JSX |
warn | [ "tag-aligned" ] |
| react/jsx-closing-tag-location react Enforce closing tag location for multiline JSX |
warn | - |
| react/jsx-curly-brace-presence react Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes |
warn | [
{
"props": "never",
"children": "never"
}
] |
| react/jsx-curly-newline react Enforce consistent linebreaks in curly braces in JSX attributes and expressions |
warn | - |
| react/jsx-curly-spacing react Enforce or disallow spaces inside of curly braces in JSX attributes and expressions |
warn | [ "never" ] |
| react/jsx-equals-spacing react Enforce or disallow spaces around equal signs in JSX attributes |
warn | [ "never" ] |
| react/jsx-filename-extension react Disallow file extensions that may contain JSX |
error | [
{
"extensions": [
".js",
".jsx",
".tsx",
".mdx"
]
}
] |
| react/jsx-fragments react Enforce shorthand or standard form for React fragments |
warn | [ "element" ] |
| react/jsx-handler-names react Enforce event handler naming conventions in JSX |
warn | - |
| react/jsx-indent react Enforce JSX indentation |
warn | [ 4 ] |
| react/jsx-key react Disallow missing `key` props in iterators/collection literals |
error | - |
| react/jsx-max-depth react Enforce JSX maximum depth |
warn | [
{
"max": 13
}
] |
| react/jsx-max-props-per-line react Enforce maximum of props on a single line in JSX |
warn | [
{
"maximum": 1,
"when": "multiline"
}
] |
| react/jsx-no-comment-textnodes react Disallow comments from being inserted as text nodes |
error | - |
| react/jsx-no-constructed-context-values react Disallows JSX context provider values from taking values that will cause needless rerenders |
error | - |
| react/jsx-no-duplicate-props react Disallow duplicate properties in JSX |
warn | - |
| react/jsx-no-leaked-render react Disallow problematic leaked values from being rendered |
error | [
{
"validStrategies": [
"ternary"
]
}
] |
| react/jsx-no-script-url react Disallow usage of `javascript:` URLs |
error | - |
| react/jsx-no-useless-fragment react Disallow unnecessary fragments |
warn | [
{
"allowExpressions": true
}
] |
| react/jsx-pascal-case react Enforce PascalCase for user-defined JSX components |
warn | - |
| react/jsx-props-no-multi-spaces react Disallow multiple spaces between inline JSX props |
warn | - |
| react/jsx-tag-spacing react Enforce whitespace in and around the JSX opening and closing brackets |
warn | [
{
"closingSlash": "never",
"beforeSelfClosing": "never",
"afterOpening": "never",
"beforeClosing": "never"
}
] |
| react/jsx-uses-react react Disallow React to be incorrectly marked as unused |
error | - |
| react/jsx-uses-vars react Disallow variables used in JSX to be incorrectly marked as unused |
error | - |
| react/jsx-wrap-multilines react Disallow missing parentheses around multiline JSX |
warn | - |
| react/no-access-state-in-setstate react Disallow when this.state is accessed within setState |
warn | - |
| react/no-adjacent-inline-elements react Disallow adjacent inline elements not separated by whitespace. |
warn | - |
| react/no-array-index-key react Disallow usage of Array index in keys |
warn | - |
| react/no-arrow-function-lifecycle react Lifecycle methods should be methods on the prototype, not class fields |
warn | - |
| react/no-children-prop react Disallow passing of children as props |
error | - |
| react/no-danger-with-children react Disallow when a DOM element is using both children and dangerouslySetInnerHTML |
error | - |
| react/no-deprecated react Disallow usage of deprecated methods |
warn | - |
| react/no-did-mount-set-state react Disallow usage of setState in componentDidMount |
warn | - |
| react/no-did-update-set-state react Disallow usage of setState in componentDidUpdate |
warn | - |
| react/no-direct-mutation-state react Disallow direct mutation of this.state |
warn | - |
| react/no-find-dom-node react Disallow usage of findDOMNode |
error | - |
| react/no-is-mounted react Disallow usage of isMounted |
error | - |
| react/no-multi-comp react Disallow multiple component definition per file |
warn | [
{
"ignoreStateless": true
}
] |
| react/no-namespace react Enforce that namespaces are not used in React elements |
error | - |
| react/no-render-return-value react Disallow usage of the return value of ReactDOM.render |
error | - |
| react/no-string-refs react Disallow using string references |
error | - |
| react/no-this-in-sfc react Disallow `this` from being used in stateless functional components |
error | - |
| react/no-typos react Disallow common typos |
error | - |
| react/no-unescaped-entities react Disallow unescaped HTML entities from appearing in markup |
error | - |
| react/no-unstable-nested-components react Disallow creating unstable components inside components |
error | [
{
"allowAsProps": true
}
] |
| react/no-unused-state react Disallow definitions of unused state |
warn | - |
| react/no-will-update-set-state react Disallow usage of setState in componentWillUpdate |
error | - |
| react/prefer-es6-class react Enforce ES5 or ES6 class for React Components |
warn | - |
| react/prefer-stateless-function react Enforce stateless components to be written as a pure function |
warn | [
{
"ignorePureComponents": true
}
] |
| react/react-in-jsx-scope react Disallow missing React when using JSX |
error | - |
| react/require-render-return react Enforce ES5 or ES6 class for returning value in render function |
error | - |
| react/self-closing-comp react Disallow extra closing tags for components without children |
warn | - |
| react/sort-comp react Enforce component methods order |
warn | [
{
"order": [
"static-variables",
"static-methods",
"instance-variables",
"lifecycle",
"everything-else",
"render"
],
"groups": {
"lifecycle": [
"displayName",
"propTypes",
"contextTypes",
"childContextTypes",
"mixins",
"statics",
"defaultProps",
"getDefaultProps",
"state",
"getInitialState",
"constructor",
"getChildContext",
"getDerivedStateFromProps",
"componentWillMount",
"UNSAFE_componentWillMount",
"componentDidMount",
"componentWillReceiveProps",
"UNSAFE_componentWillReceiveProps",
"shouldComponentUpdate",
"componentWillUpdate",
"UNSAFE_componentWillUpdate",
"getSnapshotBeforeUpdate",
"componentDidUpdate",
"componentDidCatch",
"componentWillUnmount"
]
}
}
] |
| react/static-property-placement react Enforces where React component static properties should be positioned. |
warn | - |
| require-atomic-updates eslint Disallow assignments that can lead to race conditions due to usage of `await` or `yield` |
warn | [
{
"allowProperties": false
}
] |
| use-isnan eslint Require calls to `isNaN()` when checking for `NaN` |
error | [
{
"enforceForIndexOf": false,
"enforceForSwitchCase": true
}
] |
| valid-typeof eslint Enforce comparing `typeof` expressions against valid strings |
error | [
{
"requireStringLiterals": false
}
] |
| vars-on-top eslint Require `var` declarations be placed at the top of their containing scope |
warn | - |
| yoda eslint Require or disallow "Yoda" conditions |
warn | [
"never",
{
"exceptRange": false,
"onlyEquality": false
}
] |
Rules available in the included plugins but not enabled by this config.
| @stylistic/array-bracket-newline @stylistic Enforce linebreaks after opening and before closing array brackets |
| @stylistic/array-element-newline @stylistic Enforce line breaks after each array element |
| @stylistic/arrow-parens @stylistic Require parentheses around arrow function arguments |
| @stylistic/brace-style @stylistic Enforce consistent brace style for blocks |
| @stylistic/curly-newline @stylistic Enforce consistent line breaks after opening and before closing braces |
| @stylistic/exp-jsx-props-style @stylistic Enforce consistent line break styles for JSX props |
| @stylistic/exp-list-style @stylistic Enforce consistent spacing and line break styles inside brackets. |
| @stylistic/function-paren-newline @stylistic Enforce consistent line breaks inside function parentheses |
| @stylistic/generator-star-spacing @stylistic Enforce consistent spacing around `*` operators in generator functions |
| @stylistic/implicit-arrow-linebreak @stylistic Enforce the location of arrow function bodies |
| @stylistic/indent-binary-ops @stylistic Indentation for binary operators |
| @stylistic/jsx-child-element-spacing @stylistic Enforce or disallow spaces inside of curly braces in JSX attributes and expressions |
| @stylistic/jsx-closing-bracket-location @stylistic Enforce closing bracket location in JSX |
| @stylistic/jsx-closing-tag-location @stylistic Enforce closing tag location for multiline JSX |
| @stylistic/jsx-curly-brace-presence @stylistic Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes |
| @stylistic/jsx-curly-newline @stylistic Enforce consistent linebreaks in curly braces in JSX attributes and expressions |
| @stylistic/jsx-curly-spacing @stylistic Enforce or disallow spaces inside of curly braces in JSX attributes and expressions |
| @stylistic/jsx-equals-spacing @stylistic Enforce or disallow spaces around equal signs in JSX attributes |
| @stylistic/jsx-first-prop-new-line @stylistic Enforce proper position of the first property in JSX |
| @stylistic/jsx-function-call-newline @stylistic Enforce line breaks before and after JSX elements when they are used as arguments to a function. |
| @stylistic/jsx-indent @stylistic Enforce JSX indentation. Deprecated, use `indent` rule instead. |
| @stylistic/jsx-indent-props @stylistic Enforce props indentation in JSX |
| @stylistic/jsx-max-props-per-line @stylistic Enforce maximum of props on a single line in JSX |
| @stylistic/jsx-newline @stylistic Require or prevent a new line after jsx elements and expressions. |
| @stylistic/jsx-one-expression-per-line @stylistic Require one JSX element per line |
| @stylistic/jsx-pascal-case @stylistic Enforce PascalCase for user-defined JSX components |
| @stylistic/jsx-props-no-multi-spaces @stylistic Disallow multiple spaces between inline JSX props. Deprecated, use `no-multi-spaces` rule instead. |
| @stylistic/jsx-self-closing-comp @stylistic Disallow extra closing tags for components without children |
| @stylistic/jsx-sort-props @stylistic Enforce props alphabetical sorting |
| @stylistic/jsx-tag-spacing @stylistic Enforce whitespace in and around the JSX opening and closing brackets |
| @stylistic/jsx-wrap-multilines @stylistic Disallow missing parentheses around multiline JSX |
| @stylistic/line-comment-position @stylistic Enforce position of line comments |
| @stylistic/linebreak-style @stylistic Enforce consistent linebreak style |
| @stylistic/lines-around-comment @stylistic Require empty lines around comments |
| @stylistic/max-statements-per-line @stylistic Enforce a maximum number of statements allowed per line |
| @stylistic/multiline-comment-style @stylistic Enforce a particular style for multiline comments |
| @stylistic/multiline-ternary @stylistic Enforce newlines between operands of ternary expressions |
| @stylistic/new-parens @stylistic Enforce or disallow parentheses when invoking a constructor with no arguments |
| @stylistic/no-confusing-arrow @stylistic Disallow arrow functions where they could be confused with comparisons |
| @stylistic/no-extra-parens @stylistic Disallow unnecessary parentheses |
| @stylistic/no-mixed-operators @stylistic Disallow mixed binary operators |
| @stylistic/nonblock-statement-body-position @stylistic Enforce the location of single-line statements |
| @stylistic/object-curly-newline @stylistic Enforce consistent line breaks after opening and before closing braces |
| @stylistic/object-property-newline @stylistic Enforce placing object properties on separate lines |
| @stylistic/one-var-declaration-per-line @stylistic Require or disallow newlines around variable declarations |
| @stylistic/operator-linebreak @stylistic Enforce consistent linebreak style for operators |
| @stylistic/padding-line-between-statements @stylistic Require or disallow padding lines between statements |
| @stylistic/semi-style @stylistic Enforce location of semicolons |
| @stylistic/space-infix-ops @stylistic Require spacing around infix operators |
| @stylistic/space-unary-ops @stylistic Enforce consistent spacing before or after unary operators |
| @stylistic/spaced-comment @stylistic Enforce consistent spacing after the `//` or `/*` in a comment |
| @stylistic/switch-colon-spacing @stylistic Enforce spacing around colons of switch statements |
| @stylistic/type-generic-spacing @stylistic Enforces consistent spacing inside TypeScript type generics |
| @stylistic/type-named-tuple-spacing @stylistic Expect space before the type declaration in the named tuple |
| @stylistic/wrap-regex @stylistic Require parenthesis around regex literals |
| @stylistic/yield-star-spacing @stylistic Require or disallow spacing around the `*` in `yield*` expressions |
| @typescript-eslint/await-thenable @typescript-eslint Disallow awaiting a value that is not a Thenable |
| @typescript-eslint/ban-tslint-comment @typescript-eslint Disallow `// tslint:<rule-flag>` comments |
| @typescript-eslint/class-literal-property-style @typescript-eslint Enforce that literals on classes are exposed in a consistent style |
| @typescript-eslint/class-methods-use-this @typescript-eslint Enforce that class methods utilize `this` |
| @typescript-eslint/consistent-generic-constructors @typescript-eslint Enforce specifying generic type arguments on type annotation or constructor name of a constructor call |
| @typescript-eslint/consistent-indexed-object-style @typescript-eslint Require or disallow the `Record` type |
| @typescript-eslint/consistent-return @typescript-eslint Require `return` statements to either always or never specify values |
| @typescript-eslint/consistent-type-definitions @typescript-eslint Enforce type definitions to consistently use either `interface` or `type` |
| @typescript-eslint/consistent-type-exports @typescript-eslint Enforce consistent usage of type exports |
| @typescript-eslint/dot-notation @typescript-eslint Enforce dot notation whenever possible |
| @typescript-eslint/explicit-function-return-type @typescript-eslint Require explicit return types on functions and class methods |
| @typescript-eslint/explicit-member-accessibility @typescript-eslint Require explicit accessibility modifiers on class properties and methods |
| @typescript-eslint/explicit-module-boundary-types @typescript-eslint Require explicit return and argument types on exported functions' and classes' public class methods |
| @typescript-eslint/init-declarations @typescript-eslint Require or disallow initialization in variable declarations |
| @typescript-eslint/max-params @typescript-eslint Enforce a maximum number of parameters in function definitions |
| @typescript-eslint/member-ordering @typescript-eslint Require a consistent member declaration order |
| @typescript-eslint/method-signature-style @typescript-eslint Enforce using a particular method signature syntax |
| @typescript-eslint/naming-convention @typescript-eslint Enforce naming conventions for everything across a codebase |
| @typescript-eslint/no-array-delete @typescript-eslint Disallow using the `delete` operator on array values |
| @typescript-eslint/no-base-to-string @typescript-eslint Require `.toString()` and `.toLocaleString()` to only be called on objects which provide useful information when stringified |
| @typescript-eslint/no-confusing-non-null-assertion @typescript-eslint Disallow non-null assertion in locations that may be confusing |
| @typescript-eslint/no-confusing-void-expression @typescript-eslint Require expressions of type void to appear in statement position |
| @typescript-eslint/no-deprecated @typescript-eslint Disallow using code marked as `@deprecated` |
| @typescript-eslint/no-duplicate-enum-values @typescript-eslint Disallow duplicate enum member values |
| @typescript-eslint/no-dynamic-delete @typescript-eslint Disallow using the `delete` operator on computed key expressions |
| @typescript-eslint/no-empty-interface @typescript-eslint Disallow the declaration of empty interfaces |
| @typescript-eslint/no-empty-object-type @typescript-eslint Disallow accidentally using the "empty object" type |
| @typescript-eslint/no-extraneous-class @typescript-eslint Disallow classes used as namespaces |
| @typescript-eslint/no-floating-promises @typescript-eslint Require Promise-like statements to be handled appropriately |
| @typescript-eslint/no-import-type-side-effects @typescript-eslint Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers |
| @typescript-eslint/no-invalid-this @typescript-eslint Disallow `this` keywords outside of classes or class-like objects |
| @typescript-eslint/no-invalid-void-type @typescript-eslint Disallow `void` type outside of generic or return types |
| @typescript-eslint/no-loop-func @typescript-eslint Disallow function declarations that contain unsafe references inside loop statements |
| @typescript-eslint/no-loss-of-precision @typescript-eslint Disallow literal numbers that lose precision |
| @typescript-eslint/no-magic-numbers @typescript-eslint Disallow magic numbers |
| @typescript-eslint/no-meaningless-void-operator @typescript-eslint Disallow the `void` operator except when used to discard a value |
| @typescript-eslint/no-misused-spread @typescript-eslint Disallow using the spread operator when it might cause unexpected behavior |
| @typescript-eslint/no-mixed-enums @typescript-eslint Disallow enums from having both number and string members |
| @typescript-eslint/no-namespace @typescript-eslint Disallow TypeScript namespaces |
| @typescript-eslint/no-non-null-asserted-nullish-coalescing @typescript-eslint Disallow non-null assertions in the left operand of a nullish coalescing operator |
| @typescript-eslint/no-non-null-assertion @typescript-eslint Disallow non-null assertions using the `!` postfix operator |
| @typescript-eslint/no-redundant-type-constituents @typescript-eslint Disallow members of unions and intersections that do nothing or override type information |
| @typescript-eslint/no-restricted-imports @typescript-eslint Disallow specified modules when loaded by `import` |
| @typescript-eslint/no-restricted-types @typescript-eslint Disallow certain types |
| @typescript-eslint/no-type-alias @typescript-eslint Disallow type aliases |
| @typescript-eslint/no-unnecessary-boolean-literal-compare @typescript-eslint Disallow unnecessary equality comparisons against boolean literals |
| @typescript-eslint/no-unnecessary-condition @typescript-eslint Disallow conditionals where the type is always truthy or always falsy |
| @typescript-eslint/no-unnecessary-parameter-property-assignment @typescript-eslint Disallow unnecessary assignment of constructor property parameter |
| @typescript-eslint/no-unnecessary-template-expression @typescript-eslint Disallow unnecessary template expressions |
| @typescript-eslint/no-unnecessary-type-assertion @typescript-eslint Disallow type assertions that do not change the type of an expression |
| @typescript-eslint/no-unnecessary-type-constraint @typescript-eslint Disallow unnecessary constraints on generic types |
| @typescript-eslint/no-unnecessary-type-conversion @typescript-eslint Disallow conversion idioms when they do not change the type or value of the expression |
| @typescript-eslint/no-unnecessary-type-parameters @typescript-eslint Disallow type parameters that aren't used multiple times |
| @typescript-eslint/no-unsafe-argument @typescript-eslint Disallow calling a function with a value with type `any` |
| @typescript-eslint/no-unsafe-assignment @typescript-eslint Disallow assigning a value with type `any` to variables and properties |
| @typescript-eslint/no-unsafe-call @typescript-eslint Disallow calling a value with type `any` |
| @typescript-eslint/no-unsafe-declaration-merging @typescript-eslint Disallow unsafe declaration merging |
| @typescript-eslint/no-unsafe-enum-comparison @typescript-eslint Disallow comparing an enum value with a non-enum value |
| @typescript-eslint/no-unsafe-function-type @typescript-eslint Disallow using the unsafe built-in Function type |
| @typescript-eslint/no-unsafe-member-access @typescript-eslint Disallow member access on a value with type `any` |
| @typescript-eslint/no-unsafe-return @typescript-eslint Disallow returning a value with type `any` from a function |
| @typescript-eslint/no-unsafe-type-assertion @typescript-eslint Disallow type assertions that narrow a type |
| @typescript-eslint/no-unsafe-unary-minus @typescript-eslint Require unary negation to take a number |
| @typescript-eslint/no-unused-private-class-members @typescript-eslint Disallow unused private class members |
| @typescript-eslint/no-useless-default-assignment @typescript-eslint Disallow default values that will never be used |
| @typescript-eslint/no-useless-empty-export @typescript-eslint Disallow empty exports that don't change anything in a module file |
| @typescript-eslint/no-var-requires @typescript-eslint Disallow `require` statements except in import statements |
| @typescript-eslint/no-wrapper-object-types @typescript-eslint Disallow using confusing built-in primitive class wrappers |
| @typescript-eslint/non-nullable-type-assertion-style @typescript-eslint Enforce non-null assertions over explicit type assertions |
| @typescript-eslint/parameter-properties @typescript-eslint Require or disallow parameter properties in class constructors |
| @typescript-eslint/prefer-destructuring @typescript-eslint Require destructuring from arrays and/or objects |
| @typescript-eslint/prefer-enum-initializers @typescript-eslint Require each enum member value to be explicitly initialized |
| @typescript-eslint/prefer-find @typescript-eslint Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result |
| @typescript-eslint/prefer-function-type @typescript-eslint Enforce using function types instead of interfaces with call signatures |
| @typescript-eslint/prefer-literal-enum-member @typescript-eslint Require all enum members to be literal values |
| @typescript-eslint/prefer-nullish-coalescing @typescript-eslint Enforce using the nullish coalescing operator instead of logical assignments or chaining |
| @typescript-eslint/prefer-promise-reject-errors @typescript-eslint Require using Error objects as Promise rejection reasons |
| @typescript-eslint/prefer-readonly @typescript-eslint Require private members to be marked as `readonly` if they're never modified outside of the constructor |
| @typescript-eslint/prefer-readonly-parameter-types @typescript-eslint Require function parameters to be typed as `readonly` to prevent accidental mutation of inputs |
| @typescript-eslint/prefer-reduce-type-parameter @typescript-eslint Enforce using type parameter when calling `Array#reduce` instead of using a type assertion |
| @typescript-eslint/prefer-regexp-exec @typescript-eslint Enforce `RegExp#exec` over `String#match` if no global flag is provided |
| @typescript-eslint/prefer-return-this-type @typescript-eslint Enforce that `this` is used when only `this` type is returned |
| @typescript-eslint/prefer-ts-expect-error @typescript-eslint Enforce using `@ts-expect-error` over `@ts-ignore` |
| @typescript-eslint/promise-function-async @typescript-eslint Require any function or method that returns a Promise to be marked async |
| @typescript-eslint/related-getter-setter-pairs @typescript-eslint Enforce that `get()` types should be assignable to their equivalent `set()` type |
| @typescript-eslint/require-array-sort-compare @typescript-eslint Require `Array#sort` and `Array#toSorted` calls to always provide a `compareFunction` |
| @typescript-eslint/restrict-plus-operands @typescript-eslint Require both operands of addition to be the same type and be `bigint`, `number`, or `string` |
| @typescript-eslint/restrict-template-expressions @typescript-eslint Enforce template literal expressions to be of `string` type |
| @typescript-eslint/return-await @typescript-eslint Enforce consistent awaiting of returned promises |
| @typescript-eslint/sort-type-constituents @typescript-eslint Enforce constituents of a type union/intersection to be sorted alphabetically |
| @typescript-eslint/strict-boolean-expressions @typescript-eslint Disallow certain types in boolean expressions |
| @typescript-eslint/strict-void-return @typescript-eslint Disallow passing a value-returning function in a position accepting a void function |
| @typescript-eslint/switch-exhaustiveness-check @typescript-eslint Require switch-case statements to be exhaustive |
| @typescript-eslint/typedef @typescript-eslint Require type annotations in certain places |
| @typescript-eslint/unbound-method @typescript-eslint Enforce unbound methods are called with their expected scope |
| @typescript-eslint/unified-signatures @typescript-eslint Disallow two overloads that could be unified into one with a union or an optional/rest parameter |
| @typescript-eslint/use-unknown-in-catch-callback-variable @typescript-eslint Enforce typing arguments in Promise rejection callbacks as `unknown` |
| array-bracket-newline eslint Enforce linebreaks after opening and before closing array brackets |
| array-bracket-spacing eslint Enforce consistent spacing inside array brackets |
| array-element-newline eslint Enforce line breaks after each array element |
| arrow-parens eslint Require parentheses around arrow function arguments |
| arrow-spacing eslint Enforce consistent spacing before and after the arrow in arrow functions |
| block-scoped-var eslint Enforce the use of variables within the scope they are defined |
| block-spacing eslint Disallow or enforce spaces inside of blocks after opening block and before closing block |
| brace-style eslint Enforce consistent brace style for blocks |
| callback-return eslint Require `return` statements after callbacks |
| camelcase eslint Enforce camelcase naming convention |
| capitalized-comments eslint Enforce or disallow capitalization of the first letter of a comment |
| class-methods-use-this eslint Enforce that class methods utilize `this` |
| comma-dangle eslint Require or disallow trailing commas |
| comma-spacing eslint Enforce consistent spacing before and after commas |
| comma-style eslint Enforce consistent comma style |
| complexity eslint Enforce a maximum cyclomatic complexity allowed in a program |
| computed-property-spacing eslint Enforce consistent spacing inside computed property brackets |
| consistent-return eslint Require `return` statements to either always or never specify values |
| consistent-this eslint Enforce consistent naming when capturing the current execution context |
| default-case eslint Require `default` cases in `switch` statements |
| default-case-last eslint Enforce `default` clauses in `switch` statements to be last |
| default-param-last eslint Enforce default parameters to be last |
| dot-location eslint Enforce consistent newlines before and after dots |
| dot-notation eslint Enforce dot notation whenever possible |
| eol-last eslint Require or disallow newline at the end of files |
| func-call-spacing eslint Require or disallow spacing between function identifiers and their invocations |
| func-style eslint Enforce the consistent use of either `function` declarations or expressions assigned to variables |
| function-call-argument-newline eslint Enforce line breaks between arguments of a function call |
| function-paren-newline eslint Enforce consistent line breaks inside function parentheses |
| generator-star-spacing eslint Enforce consistent spacing around `*` operators in generator functions |
| global-require eslint Require `require()` calls to be placed at top-level module scope |
| handle-callback-err eslint Require error handling in callbacks |
| id-blacklist eslint Disallow specified identifiers |
| id-denylist eslint Disallow specified identifiers |
| id-length eslint Enforce minimum and maximum identifier lengths |
| id-match eslint Require identifiers to match a specified regular expression |
| implicit-arrow-linebreak eslint Enforce the location of arrow function bodies |
| indent eslint Enforce consistent indentation |
| indent-legacy eslint Enforce consistent indentation |
| init-declarations eslint Require or disallow initialization in variable declarations |
| jest/expect-expect jest Enforce assertion to be made in a test body |
| jest/max-expects jest Enforces a maximum number assertion calls in a test body |
| jest/max-nested-describe jest Enforces a maximum depth to nested describe calls |
| jest/no-alias-methods jest Disallow alias methods |
| jest/no-conditional-in-test jest Disallow conditional logic in tests |
| jest/no-confusing-set-timeout jest Disallow confusing usages of jest.setTimeout |
| jest/no-deprecated-functions jest Disallow use of deprecated functions |
| jest/no-done-callback jest Disallow using a callback in asynchronous tests and hooks |
| jest/no-error-equal jest Disallow using equality matchers on error types |
| jest/no-hooks jest Disallow setup and teardown hooks |
| jest/no-interpolation-in-snapshots jest Disallow string interpolation inside snapshots |
| jest/no-large-snapshots jest Disallow large snapshots |
| jest/no-restricted-jest-methods jest Disallow specific `jest.` methods |
| jest/no-test-return-statement jest Disallow explicitly returning from tests |
| jest/no-unnecessary-assertion jest Disallow unnecessary assertions based on types |
| jest/no-unneeded-async-expect-function jest Disallow unnecessary async function wrapper for expected promises |
| jest/no-untyped-mock-factory jest Disallow using `jest.mock()` factories without an explicit type parameter |
| jest/padding-around-after-all-blocks jest Enforce padding around `afterAll` blocks |
| jest/padding-around-after-each-blocks jest Enforce padding around `afterEach` blocks |
| jest/padding-around-all jest Enforce padding around Jest functions |
| jest/padding-around-before-all-blocks jest Enforce padding around `beforeAll` blocks |
| jest/padding-around-before-each-blocks jest Enforce padding around `beforeEach` blocks |
| jest/padding-around-describe-blocks jest Enforce padding around `describe` blocks |
| jest/padding-around-expect-groups jest Enforce padding around `expect` groups |
| jest/padding-around-test-blocks jest Enforce padding around `test` and `it` blocks |
| jest/prefer-called-with jest Suggest using `toHaveBeenCalledWith()` |
| jest/prefer-comparison-matcher jest Suggest using the built-in comparison matchers |
| jest/prefer-each jest Prefer using `.each` rather than manual loops |
| jest/prefer-ending-with-an-expect jest Prefer having the last statement in a test be an assertion |
| jest/prefer-equality-matcher jest Suggest using the built-in equality matchers |
| jest/prefer-expect-assertions jest Suggest using `expect.assertions()` OR `expect.hasAssertions()` |
| jest/prefer-expect-resolves jest Prefer `await expect(...).resolves` over `expect(await ...)` syntax |
| jest/prefer-hooks-in-order jest Prefer having hooks in a consistent order |
| jest/prefer-importing-jest-globals jest Prefer importing Jest globals |
| jest/prefer-jest-mocked jest Prefer `jest.mocked()` over `fn as jest.Mock` |
| jest/prefer-mock-promise-shorthand jest Prefer mock resolved/rejected shorthands for promises |
| jest/prefer-mock-return-shorthand jest Prefer mock return shorthands |
| jest/prefer-snapshot-hint jest Prefer including a hint with external snapshots |
| jest/prefer-spy-on jest Suggest using `jest.spyOn()` |
| jest/prefer-strict-equal jest Suggest using `toStrictEqual()` |
| jest/prefer-to-have-been-called jest Suggest using `toHaveBeenCalled` |
| jest/prefer-to-have-been-called-times jest Suggest using `toHaveBeenCalledTimes()` |
| jest/require-hook jest Require setup and teardown code to be within a hook |
| jest/require-to-throw-message jest Require a message for `toThrow()` |
| jest/unbound-method jest Enforce unbound methods are called with their expected scope |
| jest/valid-expect-with-promise jest Require that `resolve` and `reject` modifiers are present (and only) for promise-like types |
| jest/valid-mock-module-path jest Disallow mocking of non-existing module paths |
| jsx-quotes eslint Enforce the consistent use of either double or single quotes in JSX attributes |
| key-spacing eslint Enforce consistent spacing between keys and values in object literal properties |
| keyword-spacing eslint Enforce consistent spacing before and after keywords |
| line-comment-position eslint Enforce position of line comments |
| linebreak-style eslint Enforce consistent linebreak style |
| lines-around-comment eslint Require empty lines around comments |
| lines-around-directive eslint Require or disallow newlines around directives |
| lines-between-class-members eslint Require or disallow an empty line between class members |
| logical-assignment-operators eslint Require or disallow logical assignment operator shorthand |
| max-classes-per-file eslint Enforce a maximum number of classes per file |
| max-depth eslint Enforce a maximum depth that blocks can be nested |
| max-len eslint Enforce a maximum line length |
| max-lines eslint Enforce a maximum number of lines per file |
| max-lines-per-function eslint Enforce a maximum number of lines of code in a function |
| max-nested-callbacks eslint Enforce a maximum depth that callbacks can be nested |
| max-params eslint Enforce a maximum number of parameters in function definitions |
| max-statements eslint Enforce a maximum number of statements allowed in function blocks |
| max-statements-per-line eslint Enforce a maximum number of statements allowed per line |
| multiline-comment-style eslint Enforce a particular style for multiline comments |
| multiline-ternary eslint Enforce newlines between operands of ternary expressions |
| new-cap eslint Require constructor names to begin with a capital letter |
| new-parens eslint Enforce or disallow parentheses when invoking a constructor with no arguments |
| newline-after-var eslint Require or disallow an empty line after variable declarations |
| newline-before-return eslint Require an empty line before `return` statements |
| newline-per-chained-call eslint Require a newline after each call in a method chain |
| no-alert eslint Disallow the use of `alert`, `confirm`, and `prompt` |
| no-array-constructor eslint Disallow `Array` constructors |
| no-async-promise-executor eslint Disallow using an async function as a Promise executor |
| no-bitwise eslint Disallow bitwise operators |
| no-buffer-constructor eslint Disallow use of the `Buffer()` constructor |
| no-case-declarations eslint Disallow lexical declarations in case clauses |
| no-catch-shadow eslint Disallow `catch` clause parameters from shadowing variables in the outer scope |
| no-confusing-arrow eslint Disallow arrow functions where they could be confused with comparisons |
| no-constant-condition eslint Disallow constant expressions in conditions |
| no-continue eslint Disallow `continue` statements |
| no-control-regex eslint Disallow control characters in regular expressions |
| no-delete-var eslint Disallow deleting variables |
| no-div-regex eslint Disallow equal signs explicitly at the beginning of regular expressions |
| no-dupe-class-members eslint Disallow duplicate class members |
| no-else-return eslint Disallow `else` blocks after `return` statements in `if` statements |
| no-empty-function eslint Disallow empty functions |
| no-empty-static-block eslint Disallow empty static blocks |
| no-eq-null eslint Disallow `null` comparisons without type-checking operators |
| no-extra-label eslint Disallow unnecessary labels |
| no-extra-parens eslint Disallow unnecessary parentheses |
| no-extra-semi eslint Disallow unnecessary semicolons |
| no-fallthrough eslint Disallow fallthrough of `case` statements |
| no-floating-decimal eslint Disallow leading or trailing decimal points in numeric literals |
| no-implicit-coercion eslint Disallow shorthand type conversions |
| no-implicit-globals eslint Disallow declarations in the global scope |
| no-inline-comments eslint Disallow inline comments after code |
| no-invalid-this eslint Disallow use of `this` in contexts where the value of `this` is `undefined` |
| no-label-var eslint Disallow labels that share a name with a variable |
| no-magic-numbers eslint Disallow magic numbers |
| no-mixed-operators eslint Disallow mixed binary operators |
| no-mixed-requires eslint Disallow `require` calls to be mixed with regular variable declarations |
| no-mixed-spaces-and-tabs eslint Disallow mixed spaces and tabs for indentation |
| no-multi-assign eslint Disallow use of chained assignment expressions |
| no-multi-spaces eslint Disallow multiple spaces |
| no-multi-str eslint Disallow multiline strings |
| no-multiple-empty-lines eslint Disallow multiple empty lines |
| no-native-reassign eslint Disallow assignments to native objects or read-only global variables |
| no-negated-in-lhs eslint Disallow negating the left operand in `in` expressions |
| no-new eslint Disallow `new` operators outside of assignments or comparisons |
| no-new-object eslint Disallow `Object` constructors |
| no-new-require eslint Disallow `new` operators with calls to `require` |
| no-new-symbol eslint Disallow `new` operators with the `Symbol` object |
| no-octal eslint Disallow octal literals |
| no-octal-escape eslint Disallow octal escape sequences in string literals |
| no-path-concat eslint Disallow string concatenation with `__dirname` and `__filename` |
| no-plusplus eslint Disallow the unary operators `++` and `--` |
| no-process-env eslint Disallow the use of `process.env` |
| no-process-exit eslint Disallow the use of `process.exit()` |
| no-promise-executor-return eslint Disallow returning values from Promise executor functions |
| no-prototype-builtins eslint Disallow calling some `Object.prototype` methods directly on objects |
| no-redeclare eslint Disallow variable redeclaration |
| no-regex-spaces eslint Disallow multiple spaces in regular expressions |
| no-restricted-exports eslint Disallow specified names in exports |
| no-restricted-globals eslint Disallow specified global variables |
| no-restricted-imports eslint Disallow specified modules when loaded by `import` |
| no-restricted-modules eslint Disallow specified modules when loaded by `require` |
| no-restricted-properties eslint Disallow certain properties on certain objects |
| no-restricted-syntax eslint Disallow specified syntax |
| no-return-assign eslint Disallow assignment operators in `return` statements |
| no-return-await eslint Disallow unnecessary `return await` |
| no-sequences eslint Disallow comma operators |
| no-shadow eslint Disallow variable declarations from shadowing variables declared in the outer scope |
| no-spaced-func eslint Disallow spacing between function identifiers and their applications (deprecated) |
| no-sync eslint Disallow synchronous methods |
| no-tabs eslint Disallow all tabs |
| no-ternary eslint Disallow ternary operators |
| no-throw-literal eslint Disallow throwing literals as exceptions |
| no-trailing-spaces eslint Disallow trailing whitespace at the end of lines |
| no-unassigned-vars eslint Disallow `let` or `var` variables that are read but never assigned |
| no-undef eslint Disallow the use of undeclared variables unless mentioned in `/*global */` comments |
| no-undef-init eslint Disallow initializing variables to `undefined` |
| no-undefined eslint Disallow the use of `undefined` as an identifier |
| no-underscore-dangle eslint Disallow dangling underscores in identifiers |
| no-unmodified-loop-condition eslint Disallow unmodified loop conditions |
| no-unsafe-finally eslint Disallow control flow statements in `finally` blocks |
| no-unused-expressions eslint Disallow unused expressions |
| no-unused-labels eslint Disallow unused labels |
| no-unused-vars eslint Disallow unused variables |
| no-use-before-define eslint Disallow the use of variables before they are defined |
| no-useless-assignment eslint Disallow variable assignments when the value is not used |
| no-useless-computed-key eslint Disallow unnecessary computed property keys in objects and classes |
| no-useless-constructor eslint Disallow unnecessary constructors |
| no-var eslint Require `let` or `const` instead of `var` |
| no-void eslint Disallow `void` operators |
| no-warning-comments eslint Disallow specified warning terms in comments |
| no-whitespace-before-property eslint Disallow whitespace before properties |
| nonblock-statement-body-position eslint Enforce the location of single-line statements |
| object-curly-newline eslint Enforce consistent line breaks after opening and before closing braces |
| object-curly-spacing eslint Enforce consistent spacing inside braces |
| object-property-newline eslint Enforce placing object properties on separate lines |
| one-var-declaration-per-line eslint Require or disallow newlines around variable declarations |
| operator-assignment eslint Require or disallow assignment operator shorthand where possible |
| operator-linebreak eslint Enforce consistent linebreak style for operators |
| padded-blocks eslint Require or disallow padding within blocks |
| padding-line-between-statements eslint Require or disallow padding lines between statements |
| playwright/consistent-spacing-between-blocks playwright Enforces a blank line between Playwright test blocks (e.g., test, test.step, test.beforeEach, etc.). |
| playwright/expect-expect playwright Enforce assertion to be made in a test body |
| playwright/max-expects playwright Enforces a maximum number assertion calls in a test body |
| playwright/no-commented-out-tests playwright Disallow commented out tests |
| playwright/no-conditional-in-test playwright Disallow conditional logic in tests |
| playwright/no-duplicate-slow playwright Disallow multiple `test.slow()` calls in the same test |
| playwright/no-hooks playwright Disallow setup and teardown hooks |
| playwright/no-nth-methods playwright Disallow usage of nth methods |
| playwright/no-raw-locators playwright Disallows the usage of raw locators |
| playwright/no-restricted-locators playwright Disallows the usage of specific locator methods |
| playwright/no-restricted-matchers playwright Disallow specific matchers & modifiers |
| playwright/no-restricted-roles playwright Disallows the usage of specific roles in getByRole() |
| playwright/no-skipped-test playwright Prevent usage of the `.skip()` skip test annotation. |
| playwright/no-slowed-test playwright Prevent usage of the `.slow()` slow test annotation. |
| playwright/no-unused-locators playwright Disallow usage of page locators that are not used |
| playwright/no-wait-for-navigation playwright Prevent usage of page.waitForNavigation() |
| playwright/prefer-comparison-matcher playwright Suggest using the built-in comparison matchers |
| playwright/prefer-equality-matcher playwright Suggest using the built-in equality matchers |
| playwright/prefer-hooks-in-order playwright Prefer having hooks in a consistent order |
| playwright/prefer-locator playwright Suggest locators over page methods |
| playwright/prefer-lowercase-title playwright Enforce lowercase test names |
| playwright/prefer-native-locators playwright Prefer native locator functions |
| playwright/prefer-to-be playwright Suggest using `toBe()` for primitive literals |
| playwright/require-hook playwright Require setup and teardown code to be within a hook |
| playwright/require-soft-assertions playwright Require all assertions to use `expect.soft` |
| playwright/require-tags playwright Require test blocks to have tags |
| playwright/require-to-pass-timeout playwright Require a timeout option for `toPass()` |
| playwright/require-to-throw-message playwright Require a message for `toThrow()` |
| playwright/require-top-level-describe playwright Require test cases and hooks to be inside a `test.describe` block |
| playwright/valid-test-tags playwright Enforce valid tag format in Playwright test blocks and titles |
| playwright/valid-title playwright Enforce valid titles |
| prefer-exponentiation-operator eslint Disallow the use of `Math.pow` in favor of the `**` operator |
| prefer-named-capture-group eslint Enforce using named capture group in regular expression |
| prefer-numeric-literals eslint Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals |
| prefer-object-spread eslint Disallow using `Object.assign` with an object literal as the first argument and prefer the use of object spread instead |
| prefer-promise-reject-errors eslint Require using Error objects as Promise rejection reasons |
| prefer-reflect eslint Require `Reflect` methods where applicable |
| preserve-caught-error eslint Disallow losing originally caught error when re-throwing custom errors |
| quote-props eslint Require quotes around object literal property names |
| quotes eslint Enforce the consistent use of either backticks, double, or single quotes |
| radix eslint Enforce the use of the radix argument when using `parseInt()` |
| react-hooks/capitalized-calls react-hooks Validates against calling capitalized functions/methods instead of using JSX |
| react-hooks/component-hook-factories react-hooks Deprecated: this rule has been removed in 7.1.0. |
| react-hooks/config react-hooks Validates the compiler configuration options |
| react-hooks/error-boundaries react-hooks Validates usage of error boundaries instead of try/catch for errors in child components |
| react-hooks/exhaustive-effect-dependencies react-hooks Validates that effect dependencies are exhaustive and without extraneous values |
| react-hooks/fbt react-hooks Validates usage of fbt |
| react-hooks/gating react-hooks Validates configuration of [gating mode](https://react.dev/reference/react-compiler/gating) |
| react-hooks/globals react-hooks Validates against assignment/mutation of globals during render, part of ensuring that [side effects must render outside of render](https://react.dev/reference/rules/components-and-hooks-must-be-pure#side-effects-must-run-outside-of-render) |
| react-hooks/hooks react-hooks Validates the rules of hooks |
| react-hooks/immutability react-hooks Validates against mutating props, state, and other values that [are immutable](https://react.dev/reference/rules/components-and-hooks-must-be-pure#props-and-state-are-immutable) |
| react-hooks/incompatible-library react-hooks Validates against usage of libraries which are incompatible with memoization (manual or automatic) |
| react-hooks/invariant react-hooks Internal invariants |
| react-hooks/memo-dependencies react-hooks Validates that useMemo() and useCallback() specify comprehensive dependencies without extraneous values. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information. |
| react-hooks/memoized-effect-dependencies react-hooks Validates that effect dependencies are memoized |
| react-hooks/no-deriving-state-in-effects react-hooks Validates against deriving values from state in an effect |
| react-hooks/preserve-manual-memoization react-hooks Validates that existing manual memoized is preserved by the compiler. React Compiler will only compile components and hooks if its inference [matches or exceeds the existing manual memoization](https://react.dev/learn/react-compiler/introduction#what-should-i-do-about-usememo-usecallback-and-reactmemo) |
| react-hooks/purity react-hooks Validates that [components/hooks are pure](https://react.dev/reference/rules/components-and-hooks-must-be-pure) by checking that they do not call known-impure functions |
| react-hooks/refs react-hooks Validates correct usage of refs, not reading/writing during render. See the "pitfalls" section in [`useRef()` usage](https://react.dev/reference/react/useRef#usage) |
| react-hooks/rule-suppression react-hooks Validates against suppression of other rules |
| react-hooks/set-state-in-effect react-hooks Validates against calling setState synchronously in an effect. This can indicate non-local derived data, a derived event pattern, or improper external data synchronization. |
| react-hooks/set-state-in-render react-hooks Validates against setting state during render, which can trigger additional renders and potential infinite render loops |
| react-hooks/static-components react-hooks Validates that components are static, not recreated every render. Components that are recreated dynamically can reset state and trigger excessive re-rendering |
| react-hooks/syntax react-hooks Validates against invalid syntax |
| react-hooks/todo react-hooks Unimplemented features |
| react-hooks/unsupported-syntax react-hooks Validates against syntax that we do not plan to support in React Compiler |
| react-hooks/use-memo react-hooks Validates usage of the useMemo() hook against common mistakes. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information. |
| react-hooks/void-use-memo react-hooks Validates that useMemos always return a value and that the result of the useMemo is used by the component/hook. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information. |
| react/boolean-prop-naming react Enforces consistent naming for boolean props |
| react/checked-requires-onchange-or-readonly react Enforce using `onChange` or `readonly` attribute when `checked` is used |
| react/default-props-match-prop-types react Enforce all defaultProps have a corresponding non-required PropType |
| react/destructuring-assignment react Enforce consistent usage of destructuring assignment of props, state, and context |
| react/display-name react Disallow missing displayName in a React component definition |
| react/forbid-component-props react Disallow certain props on components |
| react/forbid-dom-props react Disallow certain props on DOM Nodes |
| react/forbid-elements react Disallow certain elements |
| react/forbid-foreign-prop-types react Disallow using another component's propTypes |
| react/forbid-prop-types react Disallow certain propTypes |
| react/forward-ref-uses-ref react Require all forwardRef components include a ref parameter |
| react/function-component-definition react Enforce a specific function type for function components |
| react/hook-use-state react Ensure destructuring and symmetric naming of useState hook value and setter variables |
| react/jsx-child-element-spacing react Enforce or disallow spaces inside of curly braces in JSX attributes and expressions |
| react/jsx-first-prop-new-line react Enforce proper position of the first property in JSX |
| react/jsx-indent-props react Enforce props indentation in JSX |
| react/jsx-newline react Require or prevent a new line after jsx elements and expressions. |
| react/jsx-no-bind react Disallow `.bind()` or arrow functions in JSX props |
| react/jsx-no-literals react Disallow usage of string literals in JSX |
| react/jsx-no-target-blank react Disallow `target="_blank"` attribute without `rel="noreferrer"` |
| react/jsx-no-undef react Disallow undeclared variables in JSX |
| react/jsx-one-expression-per-line react Require one JSX element per line |
| react/jsx-props-no-spread-multi react Disallow JSX prop spreading the same identifier multiple times |
| react/jsx-props-no-spreading react Disallow JSX prop spreading |
| react/jsx-sort-default-props react Enforce defaultProps declarations alphabetical sorting |
| react/jsx-sort-props react Enforce props alphabetical sorting |
| react/jsx-space-before-closing react Enforce spacing before closing bracket in JSX |
| react/no-danger react Disallow usage of dangerous JSX properties |
| react/no-invalid-html-attribute react Disallow usage of invalid attributes |
| react/no-object-type-as-default-prop react Disallow usage of referential-type variables as default param in functional component |
| react/no-redundant-should-component-update react Disallow usage of shouldComponentUpdate when extending React.PureComponent |
| react/no-set-state react Disallow usage of setState |
| react/no-unknown-property react Disallow usage of unknown DOM property |
| react/no-unsafe react Disallow usage of unsafe lifecycle methods |
| react/no-unused-class-component-methods react Disallow declaring unused methods of component class |
| react/no-unused-prop-types react Disallow definitions of unused propTypes |
| react/prefer-exact-props react Prefer exact proptype definitions |
| react/prefer-read-only-props react Enforce that props are read-only |
| react/prop-types react Disallow missing props validation in a React component definition |
| react/require-default-props react Enforce a defaultProps definition for every prop that is not a required prop |
| react/require-optimization react Enforce React components to have a shouldComponentUpdate method |
| react/sort-default-props react Enforce defaultProps declarations alphabetical sorting |
| react/sort-prop-types react Enforce propTypes declarations alphabetical sorting |
| react/state-in-constructor react Enforce class component state initialization style |
| react/style-prop-object react Enforce style prop value is an object |
| react/void-dom-elements-no-children react Disallow void DOM elements (e.g. `<img />`, `<br />`) from receiving children |
| require-await eslint Disallow async functions which have no `await` expression |
| require-unicode-regexp eslint Enforce the use of `u` or `v` flag on regular expressions |
| require-yield eslint Require generator functions to contain `yield` |
| rest-spread-spacing eslint Enforce spacing between rest and spread operators and their expressions |
| semi eslint Require or disallow semicolons instead of ASI |
| semi-spacing eslint Enforce consistent spacing before and after semicolons |
| semi-style eslint Enforce location of semicolons |
| sort-imports eslint Enforce sorted `import` declarations within modules |
| sort-keys eslint Require object keys to be sorted |
| sort-vars eslint Require variables within the same declaration block to be sorted |
| space-before-blocks eslint Enforce consistent spacing before blocks |
| space-before-function-paren eslint Enforce consistent spacing before `function` definition opening parenthesis |
| space-in-parens eslint Enforce consistent spacing inside parentheses |
| space-infix-ops eslint Require spacing around infix operators |
| space-unary-ops eslint Enforce consistent spacing before or after unary operators |
| spaced-comment eslint Enforce consistent spacing after the `//` or `/*` in a comment |
| strict eslint Require or disallow strict mode directives |
| switch-colon-spacing eslint Enforce spacing around colons of switch statements |
| symbol-description eslint Require symbol descriptions |
| template-curly-spacing eslint Require or disallow spacing around embedded expressions of template strings |
| template-tag-spacing eslint Require or disallow spacing between template tags and their literals |
| unicode-bom eslint Require or disallow Unicode byte order mark (BOM) |
| wrap-iife eslint Require parentheses around immediate `function` invocations |
| wrap-regex eslint Require parenthesis around regex literals |
| yield-star-spacing eslint Require or disallow spacing around the `*` in `yield*` expressions |