Skip to content

ESLint vs typescript-eslint

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

ESLint

Open source · MIT

A JavaScript linter that finds and reports problematic code patterns, with rules you can configure.

typescript-eslint

Open source · MIT

Tools that let ESLint check TypeScript code, as a monorepo of packages.

The short answer

Choose ESLint if you need…

  • JavaScript developers who want automatic checks on their code
  • Teams that want consistent rules enforced in a shared configuration
  • Projects that need to customize which code patterns are flagged
  • Developers working with React who add a React-specific plugin on top

Choose typescript-eslint if you need…

  • JavaScript and TypeScript developers who already use ESLint
  • Teams that want consistent code checks across a TypeScript codebase
  • Projects that want TypeScript-aware lint rules

Side-by-side

ESLinttypescript-eslint
TypeDev toolDev tool
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars27.6k16.5k
Setup difficultyIntermediateIntermediate
How you get itInstall with a package managerInstall with a package manager
Main languageJavaScriptTypeScript
Last code update4 days ago5 days ago

What each one is

ESLint

ESLint is a tool that scans JavaScript (ECMAScript) code and reports patterns that may be problems or bad practice. It works by parsing code into a syntax tree and checking it against rules, and every rule is a pluggable piece you can turn on, off, or adjust. Developers use it to catch mistakes and keep code style consistent across a project.

typescript-eslint

typescript-eslint is a set of packages that let ESLint, a popular linter for JavaScript, understand and check TypeScript code. It provides a parser, plugin rules, and shared configuration so teams can catch problems and enforce style in TypeScript projects. The README describes it as static analysis, meaning code is checked without being run.

Best for

ESLint

  • JavaScript developers who want automatic checks on their code
  • Teams that want consistent rules enforced in a shared configuration
  • Projects that need to customize which code patterns are flagged
  • Developers working with React who add a React-specific plugin on top

typescript-eslint

  • JavaScript and TypeScript developers who already use ESLint
  • Teams that want consistent code checks across a TypeScript codebase
  • Projects that want TypeScript-aware lint rules

Strengths

ESLint

  • Highly pluggable: every rule is a plugin and rules can be added at runtime, per the README
  • Mature and widely used, with an MIT license and about 27,600 GitHub stars
  • Clear three-level severity model (off, warn, error) that controls the exit code

typescript-eslint

  • Brings ESLint's rule system to TypeScript code
  • Is an active project with frequent releases and an MIT license
  • Has official documentation on a dedicated website

Not ideal for

ESLint

  • People who only want code formatting; the README says Prettier is the formatter and ESLint is a linter
  • Users of experimental or non-standard syntax without a suitable parser, since ESLint officially supports only the latest final ECMAScript standard
  • Environments that cannot run a supported Node.js version (^20.19.0, ^22.13.0, or >=24)

typescript-eslint

  • Projects that do not use TypeScript or ESLint, since the tools only extend ESLint
  • Users looking for a standalone app with a graphical interface, since this is a set of developer packages

Trade-offs

ESLint

  • Requires a supported Node.js version and, for TypeScript type definitions, TypeScript 5.3 or later
  • Does not lock dependency versions by design, so behavior can change as dependencies update
  • Parser officially supports only the latest final ECMAScript standard; newer experimental syntax may need other parsers

typescript-eslint

  • Setup depends on matching versions of ESLint and TypeScript, which the README does not detail here
  • Documentation is split between the latest release and a canary version

Getting started

ESLint

Install and configure ESLint

npm init @eslint/config@latest

Run ESLint on a file

npx eslint yourfile.js
Step-by-step guide: how to use ESLint

typescript-eslint

Clone the repository

git clone https://github.com/typescript-eslint/typescript-eslint
Step-by-step guide: how to use typescript-eslint

Frequently asked questions

What is the difference between ESLint and typescript-eslint?

ESLint: A JavaScript linter that finds and reports problematic code patterns, with rules you can configure. typescript-eslint: Tools that let ESLint check TypeScript code, as a monorepo of packages. ESLint suits javascript developers who want automatic checks on their code, while typescript-eslint suits javascript and typescript developers who already use eslint.

Are ESLint and typescript-eslint free?

ESLint: Free and open source. typescript-eslint: Free and open source.

Is ESLint or typescript-eslint more popular?

ESLint has more GitHub stars (27.6k) than typescript-eslint (16.5k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to ESLint and typescript-eslint?

Other options people compare them with include Prettier, standard, lint-staged, RuboCop, Oxc.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.