A series of composable ESLint rules for React and friends.
- 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.
- Context-aware Linting: Rules that understand the context of your code and project configuration to provide more accurate linting.
eslint-plugin-react-x
- X Rules (renderer-agnostic, compatible with x-platform).eslint-plugin-react-dom
- DOM specific rules for React DOM.eslint-plugin-react-web-api
- Rules for interacting with Web APIs.eslint-plugin-react-naming-convention
- Naming convention rules.
@eslint-react/eslint-plugin
- A unified plugin that combines all individual plugins into one.
Note
ESLint React requires the following minimum versions:
- Node.js: 20.19.0
- ESLint: 9.24.0
- TypeScript: 4.9.5
npm install --save-dev typescript-eslint @eslint-react/eslint-plugin
// eslint.config.js
// @ts-check
import eslintJs from "@eslint/js";
import eslintReact from "@eslint-react/eslint-plugin";
import tseslint from "typescript-eslint";
export default tseslint.config({
files: ["**/*.ts", "**/*.tsx"],
// Extend recommended rule sets from:
// 1. ESLint JS's recommended rules
// 2. TypeScript ESLint recommended rules
// 3. ESLint React's recommended-typescript rules
extends: [
eslintJs.configs.recommended,
tseslint.configs.recommended,
eslintReact.configs["recommended-typescript"],
],
// Configure language/parsing options
languageOptions: {
// Use TypeScript ESLint parser for TypeScript files
parser: tseslint.parser,
parserOptions: {
// Enable project service for better TypeScript integration
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
// Custom rule overrides (modify rule levels or disable rules)
rules: {
"@eslint-react/no-missing-key": "warn",
},
});
x
Enable rules for"react"
.dom
Enable rules for"react-dom"
.web-api
Enable rules for interacting with Web APIs.
recommended
Enforce rules that are recommended by ESLint React for general purpose React + React DOM projects.
This preset includes thex
,dom
, andweb-api
presets.
-
recommended-typescript
Same as therecommended
preset but disables rules that can be enforced by TypeScript. -
recommended-type-checked
Same as therecommended-typescript
preset but enables additional rules that require type information.
disable-dom
Disable rules in thedom
preset.disable-web-api
Disable rules in theweb-api
preset.disable-type-checked
Disable rules that require type information.off
Disable all rules in this plugin except for debug rules.
Contributions are welcome!
Please follow our contributing guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.