As explained in the Getting Started guide:

  • parser: '@typescript-eslint/parser' tells ESLint to use the @typescript-eslint/parser package you installed to parse your source files.

    • This is required, or else ESLint will throw errors as it tries to parse TypeScript code as if it were regular JavaScript.
  • plugins: ['@typescript-eslint'] tells ESLint to load the @typescript-eslint/eslint-plugin package as a plugin.

    • This allows you to use typescript-eslint's rules within your codebase.

In short: the eslint-plugin package contains the actual lint rules, and the parser plugin adds support for parsing TypeScript files (ESLint on its own does not support TypeScript — it used to, but that project evolved into typescript-eslint).

Answer from jtbandes on Stack Overflow
🌐
npm
npmjs.com › package › @typescript-eslint › parser
@typescript-eslint/parser - npm
3 weeks ago - An ESLint parser which leverages TypeScript ESTree to allow for ESLint to lint TypeScript source code.
🌐
TypeScript ESlint
typescript-eslint.io › packages › parser
@typescript-eslint/parser | typescript-eslint
An ESLint parser used to parse TypeScript code into ESLint-compatible nodes, as well as provide backing TypeScript programs. ✨
🌐
TypeScript ESlint
typescript-eslint.io › users › dependency-versions
Dependency Versions | typescript-eslint
If you use a non-supported version of TypeScript, the parser will log a warning to the console. If you want to disable this warning, you can configure this in your parserOptions.
🌐
ESLint
eslint.org › docs › latest › use › configure › parser
Configure a Parser - ESLint - Pluggable JavaScript Linter
The following third-party parsers are known to be compatible with ESLint: ... @typescript-eslint/parser - A parser that converts TypeScript into an ESTree-compatible form so it can be used in ESLint.
🌐
GitHub
github.com › eslint › typescript-eslint-parser
GitHub - eslint/typescript-eslint-parser: An ESLint custom parser which leverages TypeScript ESTree to allow for ESLint to lint TypeScript source code. · GitHub
January 19, 2019 - An ESLint custom parser which leverages TypeScript ESTree to allow for ESLint to lint TypeScript source code. - eslint/typescript-eslint-parser
Starred by 914 users
Forked by 73 users
Languages   JavaScript 89.6% | Dockerfile 5.5% | HTML 3.4% | TypeScript 1.5%
🌐
ESLint
eslint.org › blog › 2019 › 01 › future-typescript-eslint
The future of TypeScript on ESLint
James Henry, who has long been the driving force behind TypeScript compatibility for ESLint, has started the typescript-eslint project as a centralized repository for all things related to TypeScript ESLint compatibility. This will be the new home of the TypeScript parser, eslint-plugin-typescript, and any other utilities that will make the TypeScript ESLint experience as seamless as possible.
Find elsewhere
🌐
TypeScript ESlint
typescript-eslint.io › getting-started
Getting Started | typescript-eslint
ESLint will lint all TypeScript compatible files within the current folder, and will output the results to your terminal.
🌐
TypeScript ESlint
typescript-eslint.io › packages
Packages | typescript-eslint
@typescript-eslint/parser: An ESLint parser which allows for ESLint to lint TypeScript source code.
🌐
TypeScript ESlint
typescript-eslint.io › packages › typescript-eslint
typescript-eslint | typescript-eslint
You can declare our plugin and parser in your config via this package, for example: ... // @ts-check import eslint from '@eslint/js'; import { defineConfig } from 'eslint/config'; import jestPlugin from 'eslint-plugin-jest'; import tseslint from 'typescript-eslint'; export default defineConfig({ plugins: { '@typescript-eslint': tseslint.plugin, }, languageOptions: { parser: tseslint.parser, parserOptions: { projectService: true, }, }, rules: { '@typescript-eslint/no-floating-promises': 'error', // ...
🌐
TypeScript ESlint
typescript-eslint.io › blog › announcing-typescript-eslint-v7
Announcing typescript-eslint v7 | typescript-eslint
February 12, 2024 - For example this config would enable our plugin, our parser, and type-aware linting with a few of our popular type-aware rules: ... // @ts-check import tseslint from 'typescript-eslint'; export default tseslint.config({ plugins: { '@typescript-eslint': tseslint.plugin, }, languageOptions: { parser: tseslint.parser, parserOptions: { project: true, }, }, rules: { '@typescript-eslint/no-unsafe-argument': 'error', '@typescript-eslint/no-unsafe-assignment': 'error', '@typescript-eslint/no-unsafe-call': 'error', '@typescript-eslint/no-unsafe-member-access': 'error', '@typescript-eslint/no-unsafe-return': 'error', }, });
🌐
TypeScript ESlint
typescript-eslint.io › packages › typescript-estree
@typescript-eslint/typescript-estree | typescript-eslint
This parser is designed to be generic and robust. It can be used to power any use-case which requires taking TypeScript source code and producing an ESTree-compatible AST. It is most known for use within these hyper-popular open-source projects to power their TypeScript support: ESLint, the pluggable linting utility for JavaScript and JSX
🌐
GitHub
github.com › typescript-eslint › typescript-eslint
GitHub - typescript-eslint/typescript-eslint: :sparkles: Monorepo for all the tooling which enables ESLint to support TypeScript · GitHub
:sparkles: Monorepo for all the tooling which enables ESLint to support TypeScript - typescript-eslint/typescript-eslint
Starred by 16.1K users
Forked by 2.9K users
Languages   TypeScript 90.9% | MDX 7.8%
🌐
GitHub
github.com › typescript-eslint › typescript-eslint › releases
Releases · typescript-eslint/typescript-eslint
eslint-plugin-internal: add prefer-tsutils-methods rule (#11974, #11625) scope-manager: support ScopeManager#addGlobals (#11914) typescript-estree: add shortcut methods to ParserServicesWithTypeInformation (#11965, #11955) eslint-plugin: [no-unused-private-class-members] private destructured class member is defined but used (#11785) eslint-plugin: [no-unnecessary-type-assertion] check both base constraint and actual type for non-null assertions (#11967, #11559) scope-manager: fix catch clause scopes def.name (#11982) scope-manager: prevent misidentification of "use strict" directives (#11995) utils: handle missing FlatESLint and LegacyESLint (#11958) Brad Zacher @bradzacher ·
Author   typescript-eslint