Description
The v8
versions of typescript-eslint starting with v8.0.0-alpha.10 now support ESLint v9. Hooray! 🙌
If you still have problems with typescript-eslint and ESLint v9:
- Please make sure you're using
typescript-eslint@8.0.0-alpha.10
or newer - Go through our issue chooser to file a new issue reporting your problems
- That issue template includes searching for existing issues matching your problem - please do not file duplicate issues
Note that we do not plan on backporting ESLint v9 support to v7 versions of typescript-eslint. There are a lot of breaking changes inherent to our ESLint v9 support.
Previous issue body summarising work
ESLint has released v9.
Note that it contains breaking changes and as such we do not currently support it. It may work or it may not.
We are not accepting issues against v9 until we have official support - so please do not file issues with crashes or bugs for now and please do not comment on this issue telling us about crashes.
If you believe you have a bug when using ESLint v8 - please file a new issue.
If you need some help setting up / configuring your project - please visit our discord.
If you'd like to help contribute towards support feel free to comment!
Ongoing Work
- ESLint Flat Config Support #7694 -- feat: add support for flat configs #7935
- feat(utils): add types for both flat and legacy eslint classes #8861
- feat(eslint-plugin): replace
no-new-symbol
withno-new-native-nonconstructor
#8895 - feat: support ESLint v9 #9002
Breaking Changes
- correct camelcase rule schema for allow option
- move AST traversal into SourceCode
- disallow multiple configuration comments for same rule
- default for enforceForClassMembers in no-useless-computed-key
- no-unused-vars default caughtErrors to ‘all’: Enhancement: [no-unused-vars] Update for ESLint 9 defaults #8967
- no-unused-vars varsIgnorePattern behavior with catch arguments: Enhancement: [no-unused-vars] Update for ESLint 9 defaults #8967
- no-restricted-imports allow multiple config entries for same path
- no-sequences rule schema correction
- no-invalid-regexp make allowConstructorFlags case-sensitive
- no-inner-declaration new default behaviour and option
- add two more cases to no-implicit-coercion
- Remove valid-jsdoc and require-jsdoc
- handle --output-file for empty output when saving to disk
- upgrade eslint-scope@8.0.0
- configuration comments with just severity should retain options
- Remove CodePath#currentSegments
- remove no-inner-declarations from eslint:recommended
- Rename FlatESLint to ESLint
- skip running warnings in --quiet mode
- Set default schema: [], drop support for function-style rules
- Switch Linter to flat config by default: Enhancement(utils): Update types ESLint v9 Linter class (flat config) #8968
- Parsing ‘exported’ comment using parseListConfig
- Behavior of CLI when no arguments are passed
- Update shouldUseFlatConfig and CLI so flat config is default
- deprecate no-new-symbol, recommend no-new-native-nonconstructor
- Update eslint:recommended configuration
- drop support for string configurations in flat config array
- Remove SourceCode#getComments()
- Remove deprecated context methods
- Swap FlatESLint-ESLint, FlatRuleTester-RuleTester in API Enhancement(utils): Swap FlatESLint-ESLint, FlatRuleTester-RuleTester in API #8970
- remove formatters except html, json(-with-metadata), and stylish
- Require Node.js ^18.18.0 || ^20.9.0 || >=21.1.0
Changes we're treating as non-breaking
Per discussion in #8211, these augmentations fix previous gaps in the RuleTester. We'll treat them as non-breaking bug fixes so they can land in the v7 major version ahead of v8.
- [RuleTester] Rule Tester checks for missing placeholder data in the message: Enhancement(rule-tester): check for missing placeholder data in the message #9020
- [RuleTester] Stricter rule test validations: Enhancement(rule-tester): Stricter rule test validations #9016
- [RuleTester] FlatRuleTester -> RuleTester: Enhancement(rule-tester): FlatRuleTester -> RuleTester #9017
- [RuleTester] detect duplicate test cases: Enhancement(rule-tester): detect duplicate test cases #9018
- [RuleTester] check for parsing errors in suggestion fixes: Enhancement(rule-tester): check for parsing errors in suggestion fixes #9019
- [RuleTester] assert suggestion messages are unique in rule testers: Enhancement(rule-tester): assert suggestion messages are unique #8969