Extended vs Legacy
eslint-config-airbnb-extended ships in two flavors. Both are flat-config only (no .eslintrc*) and work great with TypeScript, what differs is their philosophy and how opinionated they are.
NOTE
This package doesn’t support .eslintrc*. If you’re still on legacy config files, migrate to eslint.config.mjs first. See migration guide for detailed information.
Overview
| Aspect | Extended | Legacy |
|---|---|---|
| Purpose | Modern, TypeScript-first, opinionated defaults for new and existing codebases | Provide drop-in replacement of the original Airbnb ESLint configurations using the new flat config format. |
| Strictness | Tighter defaults out of the box, pairs nicely with the optional Strict Rules add-on | Conservative defaults, easier drop-in when migrating from old Airbnb configs |
| TypeScript | Fully supported, encourages TS-aware patterns | Fully supported, fewer extra opinions |
| Imports | Uses eslint-plugin-import-x (faster fork of eslint-plugin-import) for modern import checks | Uses eslint-plugin-import to keep migration noise low |
| Styling | Uses ESLint Stylistic for formatting-style rules you can autofix and tune | Uses deprecated ESLint styling rules for easy migration |
| Best for | Teams who want a maintained, modernized successor to Airbnb with sensible opinions | Teams moving from airbnb, airbnb-base, or airbnb-typescript configs who want to keep the same behavior initially and improve gradually. |
Which one should I choose?
Choose Extended if you:
- are starting fresh or ready to modernize,
- looking for TypeScript-aware checks along with a cleaner, more consistent import and style setup,
- plan to enable the Strict Rules bundle later for even tighter consistency.
Choose Legacy if you:
- are migrating from
airbnb,airbnb-base, orairbnb-typescriptconfigs and want minimal diffs first, - have a large codebase and prefer a gentler, low-friction transition path,
- plan to adopt the Extended (or Strict rules) opinions gradually after migration.
