Skip to content

Files

Latest commit

983f180 · Apr 11, 2025

History

History

eslint-plugin

logo

ESLint React

Version Downloads

A series of composable ESLint rules for React and friends.

Features

  • Performant: Built with performance in mind, optimized for large codebases.
  • Future-proof: Forward-looking architecture that anticipates future changes in React and TypeScript.
  • Precision Control: Fully customizable rule severity levels, allowing you to enforce or relax rules as needed.
  • Context-aware Linting: Rules that understand the context of your code and project settings to provide more accurate linting.

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

// 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,
      tsconfigRootDir: import.meta.dirname,
    },
  },
  rules: {
    // Put rules you want to override here
    "@eslint-react/no-class-component": "error",
  },
});

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.
  • off
    Disable all rules in this plugin except for debug rules.

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.