22
33The progress of all rule implementations is tracked [ here] ( https://github.com/oxc-project/oxc/issues/481 ) .
44
5- - Total number of rules: 509
5+ - Total number of rules: 512
66- Rules turned on by default: 123
77
88** Legend for 'Fixable?' column:**
@@ -130,7 +130,7 @@ Code that is outright wrong or useless.
130130| [ no-duplicate-head] ( /docs/guide/usage/linter/rules/nextjs/no-duplicate-head.html ) | nextjs | ✅ | |
131131| [ no-head-element] ( /docs/guide/usage/linter/rules/nextjs/no-head-element.html ) | nextjs | ✅ | |
132132| [ no-head-import-in-document] ( /docs/guide/usage/linter/rules/nextjs/no-head-import-in-document.html ) | nextjs | ✅ | |
133- | [ no-img-element] ( /docs/guide/usage/linter/rules/nextjs/no-img-element.html ) | nextjs | ✅ | |
133+ | [ no-img-element] ( /docs/guide/usage/linter/rules/nextjs/no-img-element.html ) | nextjs | ✅ | 🚧 |
134134| [ no-page-custom-font] ( /docs/guide/usage/linter/rules/nextjs/no-page-custom-font.html ) | nextjs | ✅ | |
135135| [ no-script-component-in-head] ( /docs/guide/usage/linter/rules/nextjs/no-script-component-in-head.html ) | nextjs | ✅ | |
136136| [ no-styled-jsx-in-document] ( /docs/guide/usage/linter/rules/nextjs/no-styled-jsx-in-document.html ) | nextjs | ✅ | |
@@ -211,7 +211,7 @@ Code that can be written to run faster.
211211| [ jsx-no-new-object-as-prop] ( /docs/guide/usage/linter/rules/react_perf/jsx-no-new-object-as-prop.html ) | react_perf | | |
212212| [ prefer-set-has] ( /docs/guide/usage/linter/rules/unicorn/prefer-set-has.html ) | unicorn | | ⚠️🛠️️ |
213213
214- ## Restriction (65 ):
214+ ## Restriction (66 ):
215215
216216Lints 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.
217217
@@ -256,6 +256,7 @@ Lints which prevent the use of language and library features. Must not be enable
256256| [ catch-or-return] ( /docs/guide/usage/linter/rules/promise/catch-or-return.html ) | promise | | |
257257| [ spec-only] ( /docs/guide/usage/linter/rules/promise/spec-only.html ) | promise | | |
258258| [ button-has-type] ( /docs/guide/usage/linter/rules/react/button-has-type.html ) | react | | |
259+ | [ forbid-elements] ( /docs/guide/usage/linter/rules/react/forbid-elements.html ) | react | | |
259260| [ jsx-filename-extension] ( /docs/guide/usage/linter/rules/react/jsx-filename-extension.html ) | react | | 🚧 |
260261| [ no-danger] ( /docs/guide/usage/linter/rules/react/no-danger.html ) | react | | |
261262| [ no-unknown-property] ( /docs/guide/usage/linter/rules/react/no-unknown-property.html ) | react | | 🚧 |
@@ -283,7 +284,7 @@ Lints which prevent the use of language and library features. Must not be enable
283284| [ prefer-node-protocol] ( /docs/guide/usage/linter/rules/unicorn/prefer-node-protocol.html ) | unicorn | | 🛠️ |
284285| [ prefer-number-properties] ( /docs/guide/usage/linter/rules/unicorn/prefer-number-properties.html ) | unicorn | | ⚠️🛠️️ |
285286
286- ## Suspicious (31 ):
287+ ## Suspicious (32 ):
287288
288289code that is most likely wrong or useless.
289290
@@ -302,6 +303,7 @@ code that is most likely wrong or useless.
302303| [ no-named-as-default] ( /docs/guide/usage/linter/rules/import/no-named-as-default.html ) | import | | |
303304| [ no-named-as-default-member] ( /docs/guide/usage/linter/rules/import/no-named-as-default-member.html ) | import | | |
304305| [ no-self-import] ( /docs/guide/usage/linter/rules/import/no-self-import.html ) | import | | |
306+ | [ no-unassigned-import] ( /docs/guide/usage/linter/rules/import/no-unassigned-import.html ) | import | | |
305307| [ no-commented-out-tests] ( /docs/guide/usage/linter/rules/jest/no-commented-out-tests.html ) | jest | | |
306308| [ approx-constant] ( /docs/guide/usage/linter/rules/oxc/approx-constant.html ) | oxc | | |
307309| [ misrefactored-assign-op] ( /docs/guide/usage/linter/rules/oxc/misrefactored-assign-op.html ) | oxc | | 🚧 |
@@ -314,7 +316,7 @@ code that is most likely wrong or useless.
314316| [ react-in-jsx-scope] ( /docs/guide/usage/linter/rules/react/react-in-jsx-scope.html ) | react | | |
315317| [ style-prop-object] ( /docs/guide/usage/linter/rules/react/style-prop-object.html ) | react | | |
316318| [ no-confusing-non-null-assertion] ( /docs/guide/usage/linter/rules/typescript/no-confusing-non-null-assertion.html ) | typescript | | 🚧 |
317- | [ no-extraneous-class] ( /docs/guide/usage/linter/rules/typescript/no-extraneous-class.html ) | typescript | | |
319+ | [ no-extraneous-class] ( /docs/guide/usage/linter/rules/typescript/no-extraneous-class.html ) | typescript | | ⚠️💡 |
318320| [ no-unnecessary-type-constraint] ( /docs/guide/usage/linter/rules/typescript/no-unnecessary-type-constraint.html ) | typescript | | |
319321| [ consistent-function-scoping] ( /docs/guide/usage/linter/rules/unicorn/consistent-function-scoping.html ) | unicorn | | 🚧 |
320322| [ no-accessor-recursion] ( /docs/guide/usage/linter/rules/unicorn/no-accessor-recursion.html ) | unicorn | | |
@@ -409,7 +411,7 @@ Lints which are rather strict or have occasional false positives.
409411| [ prefer-type-error] ( /docs/guide/usage/linter/rules/unicorn/prefer-type-error.html ) | unicorn | | 🛠️ |
410412| [ require-number-to-fixed-digits-argument] ( /docs/guide/usage/linter/rules/unicorn/require-number-to-fixed-digits-argument.html ) | unicorn | | 🛠️ |
411413
412- ## Style (138 ):
414+ ## Style (140 ):
413415
414416Code that should be written in a more idiomatic way.
415417
@@ -452,6 +454,7 @@ Code that should be written in a more idiomatic way.
452454| [ sort-keys] ( /docs/guide/usage/linter/rules/eslint/sort-keys.html ) | eslint | | 🚧 |
453455| [ vars-on-top] ( /docs/guide/usage/linter/rules/eslint/vars-on-top.html ) | eslint | | |
454456| [ yoda] ( /docs/guide/usage/linter/rules/eslint/yoda.html ) | eslint | | 🛠️ |
457+ | [ consistent-type-specifier-style] ( /docs/guide/usage/linter/rules/import/consistent-type-specifier-style.html ) | import | | 🛠️ |
455458| [ exports-last] ( /docs/guide/usage/linter/rules/import/exports-last.html ) | import | | |
456459| [ first] ( /docs/guide/usage/linter/rules/import/first.html ) | import | | 🚧 |
457460| [ group-exports] ( /docs/guide/usage/linter/rules/import/group-exports.html ) | import | | |
@@ -515,6 +518,7 @@ Code that should be written in a more idiomatic way.
515518| [ consistent-generic-constructors] ( /docs/guide/usage/linter/rules/typescript/consistent-generic-constructors.html ) | typescript | | 🚧 |
516519| [ consistent-indexed-object-style] ( /docs/guide/usage/linter/rules/typescript/consistent-indexed-object-style.html ) | typescript | | 🛠️ |
517520| [ consistent-type-definitions] ( /docs/guide/usage/linter/rules/typescript/consistent-type-definitions.html ) | typescript | | 🛠️ |
521+ | [ consistent-type-imports] ( /docs/guide/usage/linter/rules/typescript/consistent-type-imports.html ) | typescript | | 🛠️ |
518522| [ no-empty-interface] ( /docs/guide/usage/linter/rules/typescript/no-empty-interface.html ) | typescript | | |
519523| [ no-inferrable-types] ( /docs/guide/usage/linter/rules/typescript/no-inferrable-types.html ) | typescript | | 🚧 |
520524| [ prefer-for-of] ( /docs/guide/usage/linter/rules/typescript/prefer-for-of.html ) | typescript | | 🚧 |
@@ -554,19 +558,18 @@ Code that should be written in a more idiomatic way.
554558| [ prefer-to-be-object] ( /docs/guide/usage/linter/rules/vitest/prefer-to-be-object.html ) | vitest | | 🛠️ |
555559| [ prefer-to-be-truthy] ( /docs/guide/usage/linter/rules/vitest/prefer-to-be-truthy.html ) | vitest | | 🛠️ |
556560
557- ## Nursery (10 ):
561+ ## Nursery (9 ):
558562
559563New lints that are still under development.
560564
561- | Rule name | Source | Default | Fixable? |
562- | ------------------------------------------------------------------------------------------------- | ---------- | ------- | -------- |
563- | [ getter-return] ( /docs/guide/usage/linter/rules/eslint/getter-return.html ) | eslint | | |
564- | [ no-undef] ( /docs/guide/usage/linter/rules/eslint/no-undef.html ) | eslint | | |
565- | [ no-unreachable] ( /docs/guide/usage/linter/rules/eslint/no-unreachable.html ) | eslint | | |
566- | [ export] ( /docs/guide/usage/linter/rules/import/export.html ) | import | | |
567- | [ named] ( /docs/guide/usage/linter/rules/import/named.html ) | import | | |
568- | [ no-map-spread] ( /docs/guide/usage/linter/rules/oxc/no-map-spread.html ) | oxc | | 🛠️💡 |
569- | [ no-return-in-finally] ( /docs/guide/usage/linter/rules/promise/no-return-in-finally.html ) | promise | | |
570- | [ exhaustive-deps] ( /docs/guide/usage/linter/rules/react/exhaustive-deps.html ) | react | | |
571- | [ require-render-return] ( /docs/guide/usage/linter/rules/react/require-render-return.html ) | react | | |
572- | [ consistent-type-imports] ( /docs/guide/usage/linter/rules/typescript/consistent-type-imports.html ) | typescript | | 🛠️ |
565+ | Rule name | Source | Default | Fixable? |
566+ | ---------------------------------------------------------------------------------------- | ------- | ------- | -------- |
567+ | [ getter-return] ( /docs/guide/usage/linter/rules/eslint/getter-return.html ) | eslint | | |
568+ | [ no-undef] ( /docs/guide/usage/linter/rules/eslint/no-undef.html ) | eslint | | |
569+ | [ no-unreachable] ( /docs/guide/usage/linter/rules/eslint/no-unreachable.html ) | eslint | | |
570+ | [ export] ( /docs/guide/usage/linter/rules/import/export.html ) | import | | |
571+ | [ named] ( /docs/guide/usage/linter/rules/import/named.html ) | import | | |
572+ | [ no-map-spread] ( /docs/guide/usage/linter/rules/oxc/no-map-spread.html ) | oxc | | 🛠️💡 |
573+ | [ no-return-in-finally] ( /docs/guide/usage/linter/rules/promise/no-return-in-finally.html ) | promise | | |
574+ | [ exhaustive-deps] ( /docs/guide/usage/linter/rules/react/exhaustive-deps.html ) | react | | |
575+ | [ require-render-return] ( /docs/guide/usage/linter/rules/react/require-render-return.html ) | react | | |
0 commit comments