
ESLint React

4-7x faster composable ESLint rules for React and friends.
Table of Contents
Features
- Modern: First-class support for TypeScript, React 19, and more.
- Flexible: Fully customizable rule severity levels, allowing you to enforce or relax rules as needed.
- Performant: Built with performance in mind, optimized for large codebases, 4-7x faster than other ESLint plugins.
- Context-aware Linting: Rules that understand the context of your code and project configuration to provide more accurate linting.
Public Packages
Modular
Unified
Installation
[!NOTE]
ESLint React requires the following minimum versions:
- Node.js: 20.19.0
- ESLint: 9.36.0
- TypeScript: 5.9.2
Install
npm install --save-dev typescript-eslint @eslint-react/eslint-plugin
Setup
import eslintReact from "@eslint-react/eslint-plugin";
import eslintJs from "@eslint/js";
import { defineConfig } from "eslint/config";
import tseslint from "typescript-eslint";
export default defineConfig([
{
files: ["**/*.ts", "**/*.tsx"],
extends: [
eslintJs.configs.recommended,
tseslint.configs.recommended,
eslintReact.configs["recommended-typescript"],
],
languageOptions: {
parser: tseslint.parser,
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
"@eslint-react/no-missing-key": "warn",
},
},
]);
Full Installation Guide ↗
Presets
Bare Bones
x
Enable rules for "react"
.
dom
Enable rules for "react-dom"
.
web-api
Enable rules for interacting with Web APIs.
General Purpose
recommended
Enforce rules that are recommended by ESLint React for general purpose React + React DOM projects.
This preset includes the x
, dom
, and web-api
presets.
TypeScript Specialized
-
recommended-typescript
Same as the recommended
preset but disables rules that can be enforced by TypeScript.
-
recommended-type-checked
Same as the recommended-typescript
preset but enables additional rules that require type information.
Other
disable-dom
Disable rules in the dom
preset.
disable-web-api
Disable rules in the web-api
preset.
disable-type-checked
Disable rules that require type information.
disable-conflict-eslint-plugin-react
Disable rules in eslint-plugin-react
that conflict with rules in our plugins.
off
Disable all rules in this plugin except for debug rules.
Full Presets List ↗
Rules
Rules Overview ↗
Benchmark
Benchmark Results ↗
FAQ
Frequently Asked Questions ↗
Roadmap
Disclaimer
ESLint React is not affiliated with Meta Corporation or facebook/react project or React team, nor is it endorsed or sponsored by them.
Contributing
Contributions are welcome!
Please follow our contributing guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.