❤️ JavaScript/TypeScript linter (ESLint wrapper) with great defaults
MIT License
Bot releases are hidden (Show)
default-case
rule to avoid conflict with stricter @typescript-eslint/switch-exhaustiveness-check
rule.mts
, .cts
) (#728) 04552b8eslint-plugin-import
dependency to patch versions only 0a71db5unicorn/no-typeof-undefined
unicorn/no-negated-condition
unicorn/prefer-set-size
@typescript-eslint/no-duplicate-type-constituents
extends
(#686) e69a192@typescript-eslint/consistent-type-exports
@typescript-eslint/consistent-type-imports
@typescript-eslint/consistent-generic-constructors
@typescript-eslint/consistent-type-definitions
type
and interface
are almost interchangeable. The main difference is that interface
can be extended from anywhere, which can be useful in a few cases, but can most often cause surprising hard to track down behavior. XO prefers being strict by default and have chosen type
. Just use an eslint-disable
comment in the few cases where you need the declaration to be extendable.rulesMeta
in linting results (#674) cd86133
eslint-plugin-node
's maintained fork (#660) 3a4c9c9no-constant-binary-expression
unicorn/text-encoding-identifier-case
unicorn/no-useless-switch-case
unicorn/prefer-modern-math-apis
unicorn/no-unreadable-iife
unicorn/prefer-native-coercion-functions
@typescript-eslint/no-duplicate-enum-values
@typescript-eslint/parameter-properties
@typescript-eslint/space-before-blocks
@typescript-eslint/no-useless-empty-export
@typescript-eslint/no-redundant-type-constituents
unicorn/no-empty-file
unicorn/prefer-export-from
unicorn/prefer-code-point
unicorn/no-await-expression-member
prevent-abbreviations
(#620) 1d2409f