
ESLint React

A series of composable ESLint Plugins for libraries and frameworks that use React as a UI runtime.
Features
- Modern: First-class support for TypeScript, React 19, and more.
- Flexible: Increased flexibility with more granular severity control.
- Performant: Built with performance in mind, optimized for large codebases.
- Comprehensive: Handles complex scenarios and identifies problems that other tools might miss.
Public Packages
Modular
All-In-One
Installation
[!NOTE]
ESLint React requires the following minimum versions:
node@18.18.0
eslint@8.57.0
typescript@4.9.5
Install
npm install --save-dev typescript-eslint @eslint-react/eslint-plugin
Setup
import eslintJs from "@eslint/js";
import eslintReact from "@eslint-react/eslint-plugin";
import tseslint from "typescript-eslint";
export default tseslint.config({
files: ["**/*.ts", "**/*.tsx"],
extends: [
eslintJs.configs.recommended,
tseslint.configs.recommended,
eslintReact.configs["recommended-typescript"],
],
languageOptions: {
parser: tseslint.parser,
parserOptions: {
projectService: true,
},
},
rules: {
"@eslint-react/no-class-component": "error",
},
});
Full Installation Guide ↗
Presets
Bare Bones
- Core (
core
)
Enable rules for "react"
.
- DOM (
dom
)
Enable rules for "react-dom"
.
- Web API (
web-api
)
Enable rules for interacting with Web APIs.
General Purpose
- Recommended (
recommended
)
Enforce rules that are recommended by ESLint React for general purpose React + React DOM projects.
This preset includes the core
, dom
, and web-api
presets.
TypeScript Specialized
-
Recommended TypeScript (recommended-typescript
)
Same as the recommended
preset but disables rules that can be enforced by TypeScript.
-
Recommended Type-Checked (recommended-type-checked
)
Same as the recommended-typescript
preset but enables additional rules that require type information.
Full Presets List ↗
Rules
Rules Overview ↗
FAQ
Frequently Asked Questions ↗
Roadmap
Contributing
Contributions are welcome!
Please follow our contributing guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.
v1.40.0 (2025-04-01)
✨ New
- feat(react-x): add
react-x/jsx-uses-react
rule by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1027
- feat: enable
react-x/jsx-uses-react
rule in recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1027
- feat: enable
naming-convention/context-name
rule in recommended presets by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1024
- feat(kit): add
JsxRuntime
module by @Rel1cx in https://github.com/Rel1cx/eslint-react/pull/1025
Full Changelog: https://github.com/Rel1cx/eslint-react/compare/v1.38.4...v1.40.0