ESLint v9.32.0 released

We just pushed ESLint v9.32.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.

Highlights

Rules updated for explicit resource management

The following core rules were updated to support the new using and await using declarations from the explicit resource management feature:

  • curly: Now allows using and await using as the only statement in a block, similar to how let and const are handled, to avoid parser errors.
  • no-unused-vars: Treats variables declared with using/await using as used, since their Symbol.dispose is implicitly called at the end of their scope. Also adds an option to ignore unused using declarations.
  • prefer-destructuring: No longer requires destructuring for using/await using declarations, as this would be a parse error.
  • require-await and no-await-in-loop: Both rules now recognize await using as an await expression for their checks and reporting.

These changes ensure ESLint core rules are compatible with the upcoming JavaScript explicit resource management syntax, providing accurate linting and avoiding false positives or parse errors.

Rules updated for TypeScript accessor support

The following rules were updated to improve support for TypeScript types in accessor signatures:

  • accessor-pairs: Now supports checking getter and setter pairs in TypeScript interfaces and type literals when the new enforceForTSTypes option is enabled. This ensures that accessors in TypeScript type definitions are also validated for pairing.
  • grouped-accessor-pairs: Similarly, this rule now supports TypeScript interfaces and type literals with the enforceForTSTypes option, enforcing that accessors are grouped together in these type constructs as well.

These enhancements allow ESLint to provide more accurate linting for TypeScript codebases that use accessors in type definitions, helping catch issues that were previously unchecked.

Features

  • 1245000 feat: support explicit resource management in core rules (#19828) (fnx)
  • 0e957a7 feat: support typescript types in accessor rules (#19882) (fnx)

Bug Fixes

Documentation

  • 86e7426 docs: Update README (GitHub Actions Bot)

Chores

  • 50de1ce chore: package.json update for @eslint/js release (Jenkins)
  • 74f01a3 ci: unpin jiti to version ^2.5.1 (#19970) (루밀LuMir)
  • 2ab1381 ci: pin jiti to version 2.4.2 (#19964) (Francesco Trotta)
  • b7f7545 test: switch to flat config mode in SourceCode tests (#19953) (Milos Djermanovic)
  • f5a35e3 test: switch to flat config mode in eslint-fuzzer (#19960) (Milos Djermanovic)
  • e22af8c refactor: use CustomRuleDefinitionType in JSRuleDefinition (#19949) (Francesco Trotta)
  • e855717 chore: switch performance tests to hyperfine (#19919) (Francesco Trotta)
  • 2f73a23 test: switch to flat config mode in ast-utils tests (#19948) (Milos Djermanovic)
  • c565a53 chore: exclude further_reading_links.json from Prettier formatting (#19943) (Milos Djermanovic)

The latest ESLint news, case studies, tutorials, and resources.

ESLint v9.31.0 released
2 min read

ESLint v9.31.0 released

We just pushed ESLint v9.31.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.

ESLint v9.30.1 released
1 min read

ESLint v9.30.1 released

We just pushed ESLint v9.30.1, which is a patch release upgrade of ESLint. This release fixes several bugs found in the previous release.

ESLint v9.30.0 released
2 min read

ESLint v9.30.0 released

We just pushed ESLint v9.30.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.