#684·oxc

☂️ eslint-plugin-unicorn

Author: BoshenCreated Aug 4, 2023Updated Sep 17, 2026
LabelsE-Help Wantedgood first issueA-linter

[!WARNING] This comment is maintained by CI. Do not edit this comment directly. To update comment template, see https://github.com/oxc-project/oxc/tree/main/tasks/lint_rules

This is the tracking issue for eslint-plugin-unicorn.

There are 357(+ 9 deprecated) rules.

  • 159/315 recommended rules are remaining as TODO
    • 25 of which have pending fixes
  • 25/42 not recommended rules are remaining as TODO
    • 1 of which have pending fixes

To get started, run the following command:

just new-unicorn-rule <RULE_NAME>

Then implement the rule and get all the tests passing.

Recommended rules

✅: 130, : 26, ⏳: 25 / total: 315
Status Name Rationale
unicorn/better-dom-traversing
unicorn/catch-error-name
unicorn/class-reference-in-static-methods
unicorn/consistent-assert
unicorn/consistent-boolean-name
unicorn/consistent-class-member-order Use typescript/member-ordering instead, which can be configured with the same class member group order and will be supported in Oxlint.
unicorn/consistent-compound-words
unicorn/consistent-conditional-object-spread
unicorn/consistent-date-clone
unicorn/consistent-empty-array-spread
unicorn/consistent-existence-index-check
unicorn/consistent-export-decorator-position
✅⏳ unicorn/consistent-function-scoping
unicorn/consistent-json-file-read
unicorn/consistent-optional-chaining
unicorn/consistent-template-literal-escape
unicorn/consistent-tuple-labels
unicorn/default-export-style
unicorn/dom-node-dataset
unicorn/empty-brace-spaces
unicorn/error-message
unicorn/escape-case
unicorn/expiring-todo-comments
unicorn/explicit-length-check
unicorn/explicit-timer-delay
unicorn/filename-case
unicorn/import-style
unicorn/isolated-functions
unicorn/logical-assignment-operators
unicorn/max-nested-calls
unicorn/name-replacements
✅⏳ unicorn/new-for-builtins
unicorn/no-abusive-eslint-disable
unicorn/no-accessor-recursion
unicorn/no-accidental-bitwise-operator No need to implement, already covered by oxc/bad-bitwise-operator.
✅⏳ unicorn/no-anonymous-default-export
✅⏳ unicorn/no-array-callback-reference
unicorn/no-array-concat-in-loop
unicorn/no-array-fill-with-reference-type
unicorn/no-array-from-fill
✅⏳ unicorn/no-array-method-this-argument
✅⏳ unicorn/no-array-reduce
unicorn/no-array-reverse
unicorn/no-array-sort
unicorn/no-array-sort-for-min-max
unicorn/no-array-splice
unicorn/no-async-iterator-callback
unicorn/no-async-promise-finally
unicorn/no-await-expression-member
unicorn/no-await-in-promise-methods
unicorn/no-blob-to-file
unicorn/no-boolean-sort-comparator No need to implement, TypeScript type checking requires array sort comparators to return numbers.
unicorn/no-break-in-nested-loop
unicorn/no-canvas-to-image
unicorn/no-chained-comparison Use oxc/bad-comparison-sequence instead. TypeScript also reports errors for these comparisons.
unicorn/no-collection-bracket-access No need to implement, TypeScript type checking reports invalid bracket access on Map, Set, WeakMap, and WeakSet values.
unicorn/no-computed-property-existence-check
unicorn/no-confusing-array-splice
unicorn/no-confusing-array-with
unicorn/no-console-spaces
unicorn/no-constant-zero-expression No need to implement, already covered by oxc/erasing-op.
unicorn/no-declarations-before-early-exit
unicorn/no-document-cookie
unicorn/no-double-comparison Use oxc/double-comparisons instead.
unicorn/no-duplicate-if-branches
unicorn/no-duplicate-logical-operands
unicorn/no-duplicate-loops
unicorn/no-duplicate-set-values
unicorn/no-empty-file
unicorn/no-error-property-assignment
unicorn/no-exports-in-scripts
unicorn/no-for-each
unicorn/no-for-loop This rule suggests using Array.prototype.entries which is slow https://github.com/oxc-project/oxc/issues/11311, furthermore, typescript/prefer-for-of covers most cases.
unicorn/no-global-object-property-assignment
✅⏳ unicorn/no-immediate-mutation
unicorn/no-impossible-length-comparison
unicorn/no-incorrect-query-selector
unicorn/no-incorrect-template-string-interpolation
unicorn/no-instanceof-builtins
unicorn/no-invalid-argument-count No need to implement, TypeScript type checking reports invalid argument counts for functions, constructors, and built-in APIs.
unicorn/no-invalid-character-comparison No need to implement, already covered by oxc/bad-char-at-comparison.
unicorn/no-invalid-fetch-options
unicorn/no-invalid-remove-event-listener
unicorn/no-invalid-well-known-symbol-methods
unicorn/no-late-current-target-access
unicorn/no-late-event-control
✅⏳ unicorn/no-lonely-if
unicorn/no-loop-iterable-mutation
unicorn/no-magic-array-flat-depth
unicorn/no-mismatched-map-key
unicorn/no-misrefactored-assignment No need to implement, already covered by oxc/misrefactored-assign-op.
unicorn/no-multiple-promise-resolver-calls
unicorn/no-named-default Implemented via import/no-named-default.
unicorn/no-negated-array-predicate
unicorn/no-negated-comparison
unicorn/no-negated-condition
unicorn/no-negation-in-equality-check
unicorn/no-nested-ternary
unicorn/no-new-array
unicorn/no-new-buffer
unicorn/no-non-function-verb-prefix Requires type information. Not currently possible to implement in oxlint.
unicorn/no-nonstandard-builtin-properties No need to implement, TypeScript type checking reports non-standard properties and invalid calls or constructions on built-ins.
unicorn/no-null
unicorn/no-object-as-default-parameter
unicorn/no-object-methods-with-collections
unicorn/no-optional-chaining-on-undeclared-variable
✅⏳ unicorn/no-process-exit
unicorn/no-redundant-comparison
unicorn/no-return-array-push
unicorn/no-selector-as-dom-name
unicorn/no-shorthand-property-overrides Not currently possible, as it requires parsing standalone CSS files.
unicorn/no-single-promise-in-promise-methods
unicorn/no-static-only-class
unicorn/no-subtraction-comparison
unicorn/no-thenable
unicorn/no-this-assignment
unicorn/no-this-outside-of-class
unicorn/no-top-level-assignment-in-function