ESLint to Biome Rule Mapping Reference
A complete reference of which ESLint rules map to which Biome rules. Use this table to manually verify your migration or to find the Biome equivalent of a specific ESLint rule.
ESLint to Biome Converter
Convert your .eslintrc config to biome.json. Supports rule mapping for core ESLint, TypeScript, React, JSX-A11y, and import plugins. Extracts formatter settings from formatting rules.
Supported Rule Mappings
This tool maps 122 ESLint rules to their Biome equivalents across core, TypeScript, React, JSX-A11y, and import plugins.
| Category | Rules |
|---|---|
| suspicious | 32 rules |
| correctness | 30 rules |
| a11y | 27 rules |
| style | 17 rules |
| complexity | 13 rules |
| security | 2 rules |
| performance | 1 rules |
| Total | 122 rules |
How Biome organizes rules
Biome groups rules into categories: correctness (bugs and errors), suspicious (likely mistakes), style (code style preferences), complexity (unnecessary complexity), performance (performance issues), security (security vulnerabilities), a11y (accessibility), and nursery (experimental rules). Each ESLint rule maps to one Biome group and rule name.
// ESLint → Biome rule mapping (common rules)
// eslint
"no-unused-vars" → lint/correctness/noUnusedVariables
"no-console" → lint/suspicious/noConsole
"eqeqeq" → lint/suspicious/noDoubleEquals
"no-debugger" → lint/suspicious/noDebugger
"no-var" → lint/style/noVar
"prefer-const" → lint/style/useConst
// @typescript-eslint
"no-explicit-any" → lint/suspicious/noExplicitAny
"no-non-null-assertion" → lint/style/noNonNullAssertion
// react
"jsx-no-duplicate-props" → lint/suspicious/noDuplicateJsxProps
// jsx-a11y
"alt-text" → lint/a11y/useAltText
"anchor-is-valid" → lint/a11y/useValidAnchor
// Not yet available in Biome:
// "import/order", "react-hooks/exhaustive-deps" (partial)Core ESLint rules
Most core ESLint recommended rules have Biome equivalents: no-unused-vars maps to correctness/noUnusedVariables, no-debugger to suspicious/noDebugger, prefer-const to style/useConst, no-eval to security/noGlobalEval. Formatting rules (indent, semi, quotes) are handled by Biome's formatter instead of linter rules.
TypeScript-ESLint rules
Biome covers the most important TypeScript-ESLint rules: no-explicit-any (suspicious/noExplicitAny), no-unused-vars (correctness/noUnusedVariables), consistent-type-imports (style/useImportType), ban-types (complexity/noBannedTypes), no-non-null-assertion (style/noNonNullAssertion). Biome v2 added type-aware rules for deeper TypeScript analysis.
React and JSX-A11y rules
Biome implements React Hooks rules (rules-of-hooks, exhaustive-deps), JSX rules (jsx-key, no-duplicate-props), and most JSX-A11y rules (alt-text, anchor-is-valid, aria-props, click-events-have-key-events). The react-hooks rules map to correctness/useHookAtTopLevel and correctness/useExhaustiveDependencies.
Rules without Biome equivalents
Some popular ESLint rules have no Biome equivalent: no-console (use a custom ignore pattern), no-restricted-syntax (no equivalent), no-param-reassign (not implemented), eqeqeq (not implemented as a rule), and most eslint-plugin-testing-library rules. These gaps are typically filled by Biome's recommended rules catching the underlying issues differently.
Frequently Asked Questions
How many ESLint rules does Biome support?
Biome implements 200+ rules that map to ESLint core, TypeScript-ESLint, React, JSX-A11y, import, and Unicorn rules. This converter maps 100+ of the most commonly enabled rules.
What happens to rules that have no Biome equivalent?
Rules without a Biome equivalent are listed in the warnings tab. You can either accept the gap, find a Biome-native alternative, or keep ESLint running alongside Biome for those specific rules during a gradual migration.
Does Biome have rules that ESLint does not?
Yes. Biome includes rules not found in standard ESLint, such as noAccumulatingSpread (performance), useOptionalChain (complexity), and noConstEnum (style). Running Biome recommended rules may catch issues that your ESLint config did not.
Related Convert Tools
HTML ↔ Markdown
Convert between HTML and Markdown in either direction
Image Compressor
Compress and resize images with adjustable quality — JPEG, WebP, and PNG
Text ↔ Binary Converter
Convert text to binary, hexadecimal, octal, or decimal and decode back with UTF-8 support
URL Slug Generator
Convert text into clean, URL-friendly slugs with Unicode transliteration and bulk mode