diff --git a/src/docs/guide/usage/linter/generated-rules.md b/src/docs/guide/usage/linter/generated-rules.md index 3b2bb236346..838b4cbd560 100644 --- a/src/docs/guide/usage/linter/generated-rules.md +++ b/src/docs/guide/usage/linter/generated-rules.md @@ -2,404 +2,420 @@ The progress of all rule implementations is tracked [here](https://github.com/oxc-project/oxc/issues/481). -- Total number of rules: 360 -- Rules turned on by default: 89 +- Total number of rules: 369 +- Rules turned on by default: 90 -## Correctness (157): +## Correctness (158): -| Rule name | Source | Default | +Code that is outright wrong or useless. +| Rule name | Source | Default | | --------------------------------------------- | ---------- | ------- | -| for-direction | eslint | ✅ | -| no-async-promise-executor | eslint | ✅ | -| no-caller | eslint | ✅ | -| no-class-assign | eslint | ✅ | -| no-compare-neg-zero | eslint | ✅ | -| no-cond-assign | eslint | ✅ | -| no-const-assign | eslint | ✅ | -| no-constant-binary-expression | eslint | ✅ | -| no-constant-condition | eslint | ✅ | -| no-control-regex | eslint | ✅ | -| no-debugger | eslint | ✅ | -| no-delete-var | eslint | ✅ | -| no-dupe-class-members | eslint | ✅ | -| no-dupe-else-if | eslint | ✅ | -| no-dupe-keys | eslint | ✅ | -| no-duplicate-case | eslint | ✅ | -| no-empty-character-class | eslint | ✅ | -| no-empty-pattern | eslint | ✅ | -| no-empty-static-block | eslint | ✅ | -| no-ex-assign | eslint | ✅ | -| no-extra-boolean-cast | eslint | ✅ | -| no-func-assign | eslint | ✅ | -| no-global-assign | eslint | ✅ | -| no-irregular-whitespace | eslint | ✅ | -| no-loss-of-precision | eslint | ✅ | -| no-new-native-nonconstructor | eslint | ✅ | -| no-nonoctal-decimal-escape | eslint | ✅ | -| no-obj-calls | eslint | ✅ | -| no-self-assign | eslint | ✅ | -| no-setter-return | eslint | ✅ | -| no-shadow-restricted-names | eslint | ✅ | -| no-sparse-arrays | eslint | ✅ | -| no-this-before-super | eslint | ✅ | -| no-unsafe-finally | eslint | ✅ | -| no-unsafe-negation | eslint | ✅ | -| no-unused-labels | eslint | ✅ | -| no-unused-private-class-members | eslint | ✅ | -| no-useless-catch | eslint | ✅ | -| no-useless-escape | eslint | ✅ | -| no-useless-rename | eslint | ✅ | -| no-with | eslint | ✅ | -| require-yield | eslint | ✅ | -| use-isnan | eslint | ✅ | -| valid-typeof | eslint | ✅ | -| default | import | | -| named | import | | -| namespace | import | | -| expect-expect | jest | | -| no-conditional-expect | jest | | -| no-disabled-tests | jest | | -| no-export | jest | | -| no-focused-tests | jest | | -| no-standalone-expect | jest | | -| require-to-throw-message | jest | | -| valid-describe-callback | jest | | -| valid-expect | jest | | -| valid-title | jest | | -| check-property-names | jsdoc | | -| check-tag-names | jsdoc | | -| implements-on-classes | jsdoc | | -| no-defaults | jsdoc | | -| require-property | jsdoc | | -| require-property-description | jsdoc | | -| require-property-name | jsdoc | | -| require-property-type | jsdoc | | -| require-yields | jsdoc | | -| alt-text | jsx_a11y | | -| anchor-has-content | jsx_a11y | | -| anchor-is-valid | jsx_a11y | | -| aria-activedescendant-has-tabindex | jsx_a11y | | -| aria-props | jsx_a11y | | -| aria-role | jsx_a11y | | -| aria-unsupported-elements | jsx_a11y | | -| autocomplete-valid | jsx_a11y | | -| click-events-have-key-events | jsx_a11y | | -| heading-has-content | jsx_a11y | | -| html-has-lang | jsx_a11y | | -| iframe-has-title | jsx_a11y | | -| img-redundant-alt | jsx_a11y | | -| lang | jsx_a11y | | -| media-has-caption | jsx_a11y | | -| mouse-events-have-key-events | jsx_a11y | | -| no-access-key | jsx_a11y | | -| no-aria-hidden-on-focusable | jsx_a11y | | -| no-autofocus | jsx_a11y | | -| no-distracting-elements | jsx_a11y | | -| no-redundant-roles | jsx_a11y | | -| prefer-tag-over-role | jsx_a11y | | -| role-has-required-aria-props | jsx_a11y | | -| role-supports-aria-props | jsx_a11y | | -| scope | jsx_a11y | | -| tabindex-no-positive | jsx_a11y | | -| google-font-display | nextjs | | -| google-font-preconnect | nextjs | | -| inline-script-id | nextjs | | -| next-script-for-ga | nextjs | | -| no-assign-module-variable | nextjs | | -| no-async-client-component | nextjs | | -| no-before-interactive-script-outside-document | nextjs | | -| no-css-tags | nextjs | | -| no-document-import-in-page | nextjs | | -| no-duplicate-head | nextjs | | -| no-head-element | nextjs | | -| no-head-import-in-document | nextjs | | -| no-img-element | nextjs | | -| no-page-custom-font | nextjs | | -| no-script-component-in-head | nextjs | | -| no-styled-jsx-in-document | nextjs | | -| no-sync-scripts | nextjs | | -| no-title-in-document-head | nextjs | | -| no-typos | nextjs | | -| no-unwanted-polyfillio | nextjs | | -| bad-array-method-on-arguments | oxc | ✅ | -| bad-char-at-comparison | oxc | ✅ | -| bad-comparison-sequence | oxc | ✅ | -| bad-min-max-func | oxc | ✅ | -| bad-object-literal-comparison | oxc | ✅ | -| bad-replace-all-arg | oxc | ✅ | -| const-comparisons | oxc | ✅ | -| double-comparisons | oxc | ✅ | -| erasing-op | oxc | ✅ | -| missing-throw | oxc | ✅ | -| number-arg-out-of-range | oxc | ✅ | -| only-used-in-recursion | oxc | ✅ | -| uninvoked-array-callback | oxc | ✅ | -| jsx-key | react | ✅ | -| jsx-no-duplicate-props | react | ✅ | -| jsx-no-target-blank | react | ✅ | -| jsx-no-undef | react | ✅ | -| no-children-prop | react | ✅ | -| no-direct-mutation-state | react | ✅ | -| no-find-dom-node | react | ✅ | -| no-is-mounted | react | ✅ | -| no-render-return-value | react | ✅ | -| no-string-refs | react | ✅ | -| void-dom-elements-no-children | react | ✅ | -| no-extra-non-null-assertion | typescript | ✅ | -| no-misused-new | typescript | ✅ | -| no-namespace | typescript | ✅ | -| no-non-null-asserted-optional-chain | typescript | ✅ | -| no-this-alias | typescript | ✅ | -| no-unsafe-declaration-merging | typescript | ✅ | -| prefer-as-const | typescript | ✅ | -| triple-slash-reference | typescript | ✅ | -| no-await-in-promise-methods | unicorn | ✅ | -| no-document-cookie | unicorn | ✅ | -| no-empty-file | unicorn | ✅ | -| no-invalid-remove-event-listener | unicorn | ✅ | -| no-new-array | unicorn | ✅ | -| no-single-promise-in-promise-methods | unicorn | ✅ | -| no-thenable | unicorn | ✅ | -| no-unnecessary-await | unicorn | ✅ | -| no-useless-fallback-in-spread | unicorn | ✅ | -| no-useless-length-check | unicorn | ✅ | -| no-useless-spread | unicorn | ✅ | -| prefer-set-size | unicorn | ✅ | -| prefer-string-starts-ends-with | unicorn | ✅ | +| for-direction | eslint | ✅ | +| no-async-promise-executor | eslint | ✅ | +| no-caller | eslint | ✅ | +| no-class-assign | eslint | ✅ | +| no-compare-neg-zero | eslint | ✅ | +| no-cond-assign | eslint | ✅ | +| no-const-assign | eslint | ✅ | +| no-constant-binary-expression | eslint | ✅ | +| no-constant-condition | eslint | ✅ | +| no-control-regex | eslint | ✅ | +| no-debugger | eslint | ✅ | +| no-delete-var | eslint | ✅ | +| no-dupe-class-members | eslint | ✅ | +| no-dupe-else-if | eslint | ✅ | +| no-dupe-keys | eslint | ✅ | +| no-duplicate-case | eslint | ✅ | +| no-empty-character-class | eslint | ✅ | +| no-empty-pattern | eslint | ✅ | +| no-empty-static-block | eslint | ✅ | +| no-ex-assign | eslint | ✅ | +| no-extra-boolean-cast | eslint | ✅ | +| no-func-assign | eslint | ✅ | +| no-global-assign | eslint | ✅ | +| no-irregular-whitespace | eslint | ✅ | +| no-loss-of-precision | eslint | ✅ | +| no-new-native-nonconstructor | eslint | ✅ | +| no-nonoctal-decimal-escape | eslint | ✅ | +| no-obj-calls | eslint | ✅ | +| no-self-assign | eslint | ✅ | +| no-setter-return | eslint | ✅ | +| no-shadow-restricted-names | eslint | ✅ | +| no-sparse-arrays | eslint | ✅ | +| no-this-before-super | eslint | ✅ | +| no-unsafe-finally | eslint | ✅ | +| no-unsafe-negation | eslint | ✅ | +| no-unused-labels | eslint | ✅ | +| no-unused-private-class-members | eslint | ✅ | +| no-useless-catch | eslint | ✅ | +| no-useless-escape | eslint | ✅ | +| no-useless-rename | eslint | ✅ | +| no-with | eslint | ✅ | +| require-yield | eslint | ✅ | +| use-isnan | eslint | ✅ | +| valid-typeof | eslint | ✅ | +| default | import | | +| named | import | | +| namespace | import | | +| expect-expect | jest | | +| no-conditional-expect | jest | | +| no-disabled-tests | jest | | +| no-export | jest | | +| no-focused-tests | jest | | +| no-standalone-expect | jest | | +| require-to-throw-message | jest | | +| valid-describe-callback | jest | | +| valid-expect | jest | | +| valid-title | jest | | +| check-property-names | jsdoc | | +| check-tag-names | jsdoc | | +| implements-on-classes | jsdoc | | +| no-defaults | jsdoc | | +| require-property | jsdoc | | +| require-property-description | jsdoc | | +| require-property-name | jsdoc | | +| require-property-type | jsdoc | | +| require-yields | jsdoc | | +| alt-text | jsx_a11y | | +| anchor-has-content | jsx_a11y | | +| anchor-is-valid | jsx_a11y | | +| aria-activedescendant-has-tabindex | jsx_a11y | | +| aria-props | jsx_a11y | | +| aria-role | jsx_a11y | | +| aria-unsupported-elements | jsx_a11y | | +| autocomplete-valid | jsx_a11y | | +| click-events-have-key-events | jsx_a11y | | +| heading-has-content | jsx_a11y | | +| html-has-lang | jsx_a11y | | +| iframe-has-title | jsx_a11y | | +| img-redundant-alt | jsx_a11y | | +| lang | jsx_a11y | | +| media-has-caption | jsx_a11y | | +| mouse-events-have-key-events | jsx_a11y | | +| no-access-key | jsx_a11y | | +| no-aria-hidden-on-focusable | jsx_a11y | | +| no-autofocus | jsx_a11y | | +| no-distracting-elements | jsx_a11y | | +| no-redundant-roles | jsx_a11y | | +| prefer-tag-over-role | jsx_a11y | | +| role-has-required-aria-props | jsx_a11y | | +| role-supports-aria-props | jsx_a11y | | +| scope | jsx_a11y | | +| tabindex-no-positive | jsx_a11y | | +| google-font-display | nextjs | | +| google-font-preconnect | nextjs | | +| inline-script-id | nextjs | | +| next-script-for-ga | nextjs | | +| no-assign-module-variable | nextjs | | +| no-async-client-component | nextjs | | +| no-before-interactive-script-outside-document | nextjs | | +| no-css-tags | nextjs | | +| no-document-import-in-page | nextjs | | +| no-duplicate-head | nextjs | | +| no-head-element | nextjs | | +| no-head-import-in-document | nextjs | | +| no-img-element | nextjs | | +| no-page-custom-font | nextjs | | +| no-script-component-in-head | nextjs | | +| no-styled-jsx-in-document | nextjs | | +| no-sync-scripts | nextjs | | +| no-title-in-document-head | nextjs | | +| no-typos | nextjs | | +| no-unwanted-polyfillio | nextjs | | +| bad-array-method-on-arguments | oxc | ✅ | +| bad-char-at-comparison | oxc | ✅ | +| bad-comparison-sequence | oxc | ✅ | +| bad-min-max-func | oxc | ✅ | +| bad-object-literal-comparison | oxc | ✅ | +| bad-replace-all-arg | oxc | ✅ | +| const-comparisons | oxc | ✅ | +| double-comparisons | oxc | ✅ | +| erasing-op | oxc | ✅ | +| missing-throw | oxc | ✅ | +| number-arg-out-of-range | oxc | ✅ | +| only-used-in-recursion | oxc | ✅ | +| uninvoked-array-callback | oxc | ✅ | +| jsx-key | react | ✅ | +| jsx-no-duplicate-props | react | ✅ | +| jsx-no-target-blank | react | ✅ | +| jsx-no-undef | react | ✅ | +| no-children-prop | react | ✅ | +| no-direct-mutation-state | react | ✅ | +| no-find-dom-node | react | ✅ | +| no-is-mounted | react | ✅ | +| no-render-return-value | react | ✅ | +| no-string-refs | react | ✅ | +| void-dom-elements-no-children | react | ✅ | +| no-extra-non-null-assertion | typescript | ✅ | +| no-misused-new | typescript | ✅ | +| no-namespace | typescript | ✅ | +| no-non-null-asserted-optional-chain | typescript | ✅ | +| no-this-alias | typescript | ✅ | +| no-unsafe-declaration-merging | typescript | ✅ | +| no-useless-empty-export | typescript | ✅ | +| prefer-as-const | typescript | ✅ | +| triple-slash-reference | typescript | ✅ | +| no-await-in-promise-methods | unicorn | ✅ | +| no-document-cookie | unicorn | ✅ | +| no-empty-file | unicorn | ✅ | +| no-invalid-remove-event-listener | unicorn | ✅ | +| no-new-array | unicorn | ✅ | +| no-single-promise-in-promise-methods | unicorn | ✅ | +| no-thenable | unicorn | ✅ | +| no-unnecessary-await | unicorn | ✅ | +| no-useless-fallback-in-spread | unicorn | ✅ | +| no-useless-length-check | unicorn | ✅ | +| no-useless-spread | unicorn | ✅ | +| prefer-set-size | unicorn | ✅ | +| prefer-string-starts-ends-with | unicorn | ✅ | ## Perf (6): -| Rule name | Source | Default | +Code that can be written to run faster. +| Rule name | Source | Default | | --------------------------- | ---------- | ------- | -| no-await-in-loop | eslint | | -| no-accumulating-spread | oxc | | -| jsx-no-jsx-as-prop | react_perf | | -| jsx-no-new-array-as-prop | react_perf | | -| jsx-no-new-function-as-prop | react_perf | | -| jsx-no-new-object-as-prop | react_perf | | +| no-await-in-loop | eslint | | +| no-accumulating-spread | oxc | | +| jsx-no-jsx-as-prop | react_perf | | +| jsx-no-new-array-as-prop | react_perf | | +| jsx-no-new-function-as-prop | react_perf | | +| jsx-no-new-object-as-prop | react_perf | | -## Restriction (42): +## Restriction (43): -| Rule name | Source | Default | -| --------------------------- | ---------- | ------- | -| default-case | eslint | | -| no-bitwise | eslint | | -| no-console | eslint | | -| no-div-regex | eslint | | -| no-empty | eslint | | -| no-empty-function | eslint | | -| no-eq-null | eslint | | -| no-eval | eslint | | -| no-iterator | eslint | | -| no-proto | eslint | | -| no-regex-spaces | eslint | | -| no-restricted-globals | eslint | | -| no-unsafe-optional-chaining | eslint | | -| no-var | eslint | | -| no-void | eslint | | -| unicode-bom | eslint | | -| no-amd | import | | -| no-cycle | import | | -| no-default-export | import | | -| check-access | jsdoc | | -| empty-tags | jsdoc | | -| bad-bitwise-operator | oxc | | -| no-async-await | oxc | | -| no-barrel-file | oxc | | -| no-const-enum | oxc | | -| no-rest-spread-properties | oxc | | -| button-has-type | react | | -| no-danger | react | | -| no-unknown-property | react | | -| no-explicit-any | typescript | | -| no-var-requires | typescript | | -| prefer-literal-enum-member | typescript | | -| no-abusive-eslint-disable | unicorn | | -| no-anonymous-default-export | unicorn | | -| no-array-for-each | unicorn | | -| no-array-reduce | unicorn | | -| no-magic-array-flat-depth | unicorn | | -| no-nested-ternary | unicorn | | -| no-process-exit | unicorn | | -| prefer-modern-math-apis | unicorn | | -| prefer-node-protocol | unicorn | | -| prefer-number-properties | unicorn | | +Lints which prevent the use of language and library features. Must not be enabled as a whole, should be considered on a case-by-case basis before enabling. +| Rule name | Source | Default | +| ----------------------------- | ---------- | ------- | +| default-case | eslint | | +| no-bitwise | eslint | | +| no-console | eslint | | +| no-div-regex | eslint | | +| no-empty | eslint | | +| no-empty-function | eslint | | +| no-eq-null | eslint | | +| no-eval | eslint | | +| no-iterator | eslint | | +| no-proto | eslint | | +| no-regex-spaces | eslint | | +| no-restricted-globals | eslint | | +| no-unsafe-optional-chaining | eslint | | +| no-var | eslint | | +| no-void | eslint | | +| unicode-bom | eslint | | +| no-amd | import | | +| no-cycle | import | | +| no-default-export | import | | +| check-access | jsdoc | | +| empty-tags | jsdoc | | +| bad-bitwise-operator | oxc | | +| no-async-await | oxc | | +| no-barrel-file | oxc | | +| no-const-enum | oxc | | +| no-rest-spread-properties | oxc | | +| button-has-type | react | | +| no-danger | react | | +| no-unknown-property | react | | +| explicit-function-return-type | typescript | | +| no-explicit-any | typescript | | +| no-var-requires | typescript | | +| prefer-literal-enum-member | typescript | | +| no-abusive-eslint-disable | unicorn | | +| no-anonymous-default-export | unicorn | | +| no-array-for-each | unicorn | | +| no-array-reduce | unicorn | | +| no-magic-array-flat-depth | unicorn | | +| no-nested-ternary | unicorn | | +| no-process-exit | unicorn | | +| prefer-modern-math-apis | unicorn | | +| prefer-node-protocol | unicorn | | +| prefer-number-properties | unicorn | | ## Suspicious (13): -| Rule name | Source | Default | +code that is most likely wrong or useless. +| Rule name | Source | Default | | ------------------------------ | ---------- | ------- | -| no-new | eslint | | -| no-useless-concat | eslint | | -| no-duplicates | import | | -| no-named-as-default | import | | -| no-named-as-default-member | import | | -| no-self-import | import | | -| no-commented-out-tests | jest | | -| approx-constant | oxc | | -| misrefactored-assign-op | oxc | | -| jsx-no-comment-textnodes | react | | -| react-in-jsx-scope | react | | -| no-unnecessary-type-constraint | typescript | | -| prefer-add-event-listener | unicorn | | +| no-new | eslint | | +| no-useless-concat | eslint | | +| no-duplicates | import | | +| no-named-as-default | import | | +| no-named-as-default-member | import | | +| no-self-import | import | | +| no-commented-out-tests | jest | | +| approx-constant | oxc | | +| misrefactored-assign-op | oxc | | +| jsx-no-comment-textnodes | react | | +| react-in-jsx-scope | react | | +| no-unnecessary-type-constraint | typescript | | +| prefer-add-event-listener | unicorn | | -## Pedantic (60): +## Pedantic (63): -| Rule name | Source | Default | +Lints which are rather strict or have occasional false positives. +| Rule name | Source | Default | | --------------------------------------- | ---------- | ------- | -| array-callback-return | eslint | | -| eqeqeq | eslint | | -| max-classes-per-file | eslint | | -| max-lines | eslint | | -| no-array-constructor | eslint | | -| no-case-declarations | eslint | | -| no-constructor-return | eslint | | -| no-inner-declarations | eslint | | -| no-new-wrappers | eslint | | -| no-prototype-builtins | eslint | | -| no-redeclare | eslint | | -| no-self-compare | eslint | | -| radix | eslint | | -| require-await | eslint | | -| symbol-description | eslint | | -| require-param | jsdoc | | -| require-returns | jsdoc | | -| require-returns-description | jsdoc | | -| require-returns-type | jsdoc | | -| checked-requires-onchange-or-readonly | react | | -| jsx-no-useless-fragment | react | | -| no-unescaped-entities | react | | -| ban-ts-comment | typescript | | -| ban-types | typescript | | -| no-duplicate-enum-values | typescript | | -| prefer-enum-initializers | typescript | | -| prefer-ts-expect-error | typescript | | -| escape-case | unicorn | | -| explicit-length-check | unicorn | | -| new-for-builtins | unicorn | | -| no-hex-escape | unicorn | | -| no-instanceof-array | unicorn | | -| no-lonely-if | unicorn | | -| no-negated-condition | unicorn | | -| no-new-buffer | unicorn | | -| no-object-as-default-parameter | unicorn | | -| no-static-only-class | unicorn | | -| no-this-assignment | unicorn | | -| no-typeof-undefined | unicorn | | -| no-unreadable-iife | unicorn | | -| no-useless-promise-resolve-reject | unicorn | | -| no-useless-switch-case | unicorn | | -| prefer-array-flat | unicorn | | -| prefer-array-some | unicorn | | -| prefer-blob-reading-methods | unicorn | | -| prefer-code-point | unicorn | | -| prefer-date-now | unicorn | | -| prefer-dom-node-append | unicorn | | -| prefer-dom-node-dataset | unicorn | | -| prefer-dom-node-remove | unicorn | | -| prefer-event-target | unicorn | | -| prefer-math-trunc | unicorn | | -| prefer-native-coercion-functions | unicorn | | -| prefer-prototype-methods | unicorn | | -| prefer-query-selector | unicorn | | -| prefer-regexp-test | unicorn | | -| prefer-string-replace-all | unicorn | | -| prefer-string-slice | unicorn | | -| prefer-type-error | unicorn | | -| require-number-to-fixed-digits-argument | unicorn | | +| array-callback-return | eslint | | +| eqeqeq | eslint | | +| max-classes-per-file | eslint | | +| max-lines | eslint | | +| no-array-constructor | eslint | | +| no-case-declarations | eslint | | +| no-constructor-return | eslint | | +| no-inner-declarations | eslint | | +| no-new-wrappers | eslint | | +| no-prototype-builtins | eslint | | +| no-redeclare | eslint | | +| no-self-compare | eslint | | +| radix | eslint | | +| require-await | eslint | | +| symbol-description | eslint | | +| require-param | jsdoc | | +| require-param-description | jsdoc | | +| require-param-name | jsdoc | | +| require-param-type | jsdoc | | +| require-returns | jsdoc | | +| require-returns-description | jsdoc | | +| require-returns-type | jsdoc | | +| checked-requires-onchange-or-readonly | react | | +| jsx-no-useless-fragment | react | | +| no-unescaped-entities | react | | +| ban-ts-comment | typescript | | +| ban-types | typescript | | +| no-duplicate-enum-values | typescript | | +| prefer-enum-initializers | typescript | | +| prefer-ts-expect-error | typescript | | +| escape-case | unicorn | | +| explicit-length-check | unicorn | | +| new-for-builtins | unicorn | | +| no-hex-escape | unicorn | | +| no-instanceof-array | unicorn | | +| no-lonely-if | unicorn | | +| no-negated-condition | unicorn | | +| no-new-buffer | unicorn | | +| no-object-as-default-parameter | unicorn | | +| no-static-only-class | unicorn | | +| no-this-assignment | unicorn | | +| no-typeof-undefined | unicorn | | +| no-unreadable-iife | unicorn | | +| no-useless-promise-resolve-reject | unicorn | | +| no-useless-switch-case | unicorn | | +| prefer-array-flat | unicorn | | +| prefer-array-some | unicorn | | +| prefer-blob-reading-methods | unicorn | | +| prefer-code-point | unicorn | | +| prefer-date-now | unicorn | | +| prefer-dom-node-append | unicorn | | +| prefer-dom-node-dataset | unicorn | | +| prefer-dom-node-remove | unicorn | | +| prefer-event-target | unicorn | | +| prefer-math-trunc | unicorn | | +| prefer-native-coercion-functions | unicorn | | +| prefer-prototype-methods | unicorn | | +| prefer-query-selector | unicorn | | +| prefer-regexp-test | unicorn | | +| prefer-string-replace-all | unicorn | | +| prefer-string-slice | unicorn | | +| prefer-type-error | unicorn | | +| require-number-to-fixed-digits-argument | unicorn | | -## Style (73): +## Style (75): -| Rule name | Source | Default | +Code that should be written in a more idiomatic way. +| Rule name | Source | Default | | ------------------------------------ | ---------- | ------- | -| default-case-last | eslint | | -| default-param-last | eslint | | -| guard-for-in | eslint | | -| max-params | eslint | | -| no-continue | eslint | | -| no-script-url | eslint | | -| no-template-curly-in-string | eslint | | -| no-ternary | eslint | | -| prefer-exponentiation-operator | eslint | | -| max-expects | jest | | -| no-alias-methods | jest | | -| no-confusing-set-timeout | jest | | -| no-deprecated-functions | jest | | -| no-done-callback | jest | | -| no-duplicate-hooks | jest | | -| no-hooks | jest | | -| no-identical-title | jest | | -| no-interpolation-in-snapshots | jest | | -| no-jasmine-globals | jest | | -| no-large-snapshots | jest | | -| no-mocks-import | jest | | -| no-restricted-jest-methods | jest | | -| no-restricted-matchers | jest | | -| no-test-prefixes | jest | | -| no-test-return-statement | jest | | -| no-untyped-mock-factory | jest | | -| prefer-called-with | jest | | -| prefer-comparison-matcher | jest | | -| prefer-equality-matcher | jest | | -| prefer-expect-resolves | jest | | -| prefer-hooks-on-top | jest | | -| prefer-lowercase-title | jest | | -| prefer-mock-promise-shorthand | jest | | -| prefer-spy-on | jest | | -| prefer-strict-equal | jest | | -| prefer-to-be | jest | | -| prefer-to-contain | jest | | -| prefer-to-have-length | jest | | -| prefer-todo | jest | | -| require-hook | jest | | -| require-top-level-describe | jest | | -| adjacent-overload-signatures | typescript | | -| array-type | typescript | | -| ban-tslint-comment | typescript | | -| consistent-indexed-object-style | typescript | | -| consistent-type-definitions | typescript | | -| no-empty-interface | typescript | | -| prefer-for-of | typescript | | -| prefer-function-type | typescript | | -| catch-error-name | unicorn | | -| empty-brace-spaces | unicorn | | -| error-message | unicorn | | -| filename-case | unicorn | | -| no-await-expression-member | unicorn | | -| no-console-spaces | unicorn | | -| no-null | unicorn | | -| no-unreadable-array-destructuring | unicorn | | -| no-zero-fractions | unicorn | | -| number-literal-case | unicorn | | -| numeric-separators-style | unicorn | | -| prefer-array-flat-map | unicorn | | -| prefer-dom-node-text-content | unicorn | | -| prefer-includes | unicorn | | -| prefer-logical-operator-over-ternary | unicorn | | -| prefer-modern-dom-apis | unicorn | | -| prefer-optional-catch-binding | unicorn | | -| prefer-reflect-apply | unicorn | | -| prefer-spread | unicorn | | -| prefer-string-trim-start-end | unicorn | | -| require-array-join-separator | unicorn | | -| switch-case-braces | unicorn | | -| text-encoding-identifier-case | unicorn | | -| throw-new-error | unicorn | | +| default-case-last | eslint | | +| default-param-last | eslint | | +| guard-for-in | eslint | | +| max-params | eslint | | +| no-continue | eslint | | +| no-script-url | eslint | | +| no-template-curly-in-string | eslint | | +| no-ternary | eslint | | +| prefer-exponentiation-operator | eslint | | +| sort-imports | eslint | | +| max-expects | jest | | +| max-nested-describe | jest | | +| no-alias-methods | jest | | +| no-confusing-set-timeout | jest | | +| no-deprecated-functions | jest | | +| no-done-callback | jest | | +| no-duplicate-hooks | jest | | +| no-hooks | jest | | +| no-identical-title | jest | | +| no-interpolation-in-snapshots | jest | | +| no-jasmine-globals | jest | | +| no-large-snapshots | jest | | +| no-mocks-import | jest | | +| no-restricted-jest-methods | jest | | +| no-restricted-matchers | jest | | +| no-test-prefixes | jest | | +| no-test-return-statement | jest | | +| no-untyped-mock-factory | jest | | +| prefer-called-with | jest | | +| prefer-comparison-matcher | jest | | +| prefer-equality-matcher | jest | | +| prefer-expect-resolves | jest | | +| prefer-hooks-on-top | jest | | +| prefer-lowercase-title | jest | | +| prefer-mock-promise-shorthand | jest | | +| prefer-spy-on | jest | | +| prefer-strict-equal | jest | | +| prefer-to-be | jest | | +| prefer-to-contain | jest | | +| prefer-to-have-length | jest | | +| prefer-todo | jest | | +| require-hook | jest | | +| require-top-level-describe | jest | | +| adjacent-overload-signatures | typescript | | +| array-type | typescript | | +| ban-tslint-comment | typescript | | +| consistent-indexed-object-style | typescript | | +| consistent-type-definitions | typescript | | +| no-empty-interface | typescript | | +| prefer-for-of | typescript | | +| prefer-function-type | typescript | | +| catch-error-name | unicorn | | +| empty-brace-spaces | unicorn | | +| error-message | unicorn | | +| filename-case | unicorn | | +| no-await-expression-member | unicorn | | +| no-console-spaces | unicorn | | +| no-null | unicorn | | +| no-unreadable-array-destructuring | unicorn | | +| no-zero-fractions | unicorn | | +| number-literal-case | unicorn | | +| numeric-separators-style | unicorn | | +| prefer-array-flat-map | unicorn | | +| prefer-dom-node-text-content | unicorn | | +| prefer-includes | unicorn | | +| prefer-logical-operator-over-ternary | unicorn | | +| prefer-modern-dom-apis | unicorn | | +| prefer-optional-catch-binding | unicorn | | +| prefer-reflect-apply | unicorn | | +| prefer-spread | unicorn | | +| prefer-string-trim-start-end | unicorn | | +| require-array-join-separator | unicorn | | +| switch-case-braces | unicorn | | +| text-encoding-identifier-case | unicorn | | +| throw-new-error | unicorn | | -## Nursery (9): +## Nursery (11): -| Rule name | Source | Default | +New lints that are still under development. +| Rule name | Source | Default | | --------------------------------- | ------------ | ------- | -| constructor-super | eslint | | -| getter-return | eslint | | -| no-fallthrough | eslint | | -| no-import-assign | eslint | | -| no-undef | eslint | | -| export | import | | -| require-render-return | react | | -| rules-of-hooks | react | | -| no-side-effects-in-initialization | tree_shaking | | +| constructor-super | eslint | | +| getter-return | eslint | | +| no-fallthrough | eslint | | +| no-import-assign | eslint | | +| no-undef | eslint | | +| no-unreachable | eslint | | +| no-useless-constructor | eslint | | +| export | import | | +| require-render-return | react | | +| rules-of-hooks | react | | +| no-side-effects-in-initialization | tree_shaking | |