More than 80 high-quality linting rules to identify possible problems in your React 19 code.
- 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.
eslint-plugin-react-x
- Core 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-hooks-extra
- Extra React Hooks rules.eslint-plugin-react-naming-convention
- Naming convention rules.
@eslint-react/eslint-plugin
- All rules and config presets from the above plugins.
Note
ESLint React requires the following minimum versions:
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"],
extends: [
eslintJs.configs.recommended,
tseslint.configs.recommended,
eslintReact.configs["recommended-typescript"],
],
languageOptions: {
parser: tseslint.parser,
parserOptions: {
projectService: true,
},
},
rules: {
// Put rules you want to override here
"@eslint-react/prefer-shorthand-boolean": "warn",
},
});
- Core (
core
)
Enable rules for"react"
. - DOM (
dom
)
Enable rules for"react-dom"
. - Web API (
web-api
)
Enable rules for interacting with Web APIs.
- Recommended (
recommended
)
Enforce rules that are recommended by ESLint React for general purpose React + React DOM projects.
This preset includes thecore
,dom
, andweb-api
presets.
-
Recommended TypeScript (
recommended-typescript
)
Same as therecommended
preset but disables rules that can be enforced by TypeScript. -
Recommended Type-Checked (
recommended-type-checked
)
Same as therecommended-typescript
preset but enables additional rules that require type information.
Please follow our contributing guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.