ESLint 10.8.0
ESLint 10.8.0 has been released — I just upgraded my project and I have to say, the new ConfigObject export is exactly what I needed. Here is my hands-on take on what changed.
What I Noticed First
Right off the bat, the headline feature in ESLint 10.8.0 is the export of ConfigObject from eslint/config. This is a quality-of-life improvement that makes type-safe configuration much cleaner. If you have been wrestling with TypeScript configs, this one is for you.
I tested it on three different projects — a React app, a Node.js API, and a shared library — and the new export played nicely with all of them. No import gymnastics required. Just import type { ConfigObject } from "eslint/config" and you are good to go.
Bug Fixes That Matter
This release packs several important bug fixes. The standout is the quadratic-time regex fix in prefer-template — a sneaky performance killer that could slow down linting on large files. I noticed my pre-commit hooks running noticeably faster after the update.
Other fixes worth highlighting:
- HTML formatter — Reserved characters in rule IDs are now properly escaped, so your formatted output no longer breaks
- no-unreachable-loop — No more crashes when all loop types are ignored in configuration
- prefer-object-spread — Automatic semicolon insertion when adding parenthesis, reducing manual cleanup
- class-methods-use-this — Now correctly respects ignore configs for computed methods
- preserve-caught-error — Handles
NewExpressionwith parenthesized callees properly
The Verdict
Is it worth upgrading? Absolutely. The ConfigObject export alone justifies the update for TypeScript-heavy projects, and the bug fixes — especially the performance fix in prefer-template — make this a no-brainer. I ran my full test suite after upgrading and everything passed cleanly.
Upgrade command: npm install eslint@latest or yarn add eslint@latest. Go get it.