Зачем нужен ESLint?
Продвинутые темы
ESLint нужен для статического анализа JavaScript/TypeScript: находит ошибки, потенциальные баги, нарушения стиля и best practices без запуска кода, обеспечивая качество и единообразие.
Что делает
- Находит ошибки — необъявленные переменные, недостижимый код, дубли.
- Ловит потенциальные баги —
==вместо===, забытыйawait, неиспользуемые переменные, зависимости хуков. - Единый стиль — правила именования, структуры кода.
- Best practices — правила для React (hooks), доступности (jsx-a11y), TypeScript.
// ESLint предупредит:
if (user = null) {} // присваивание вместо сравнения
const x = 5; // no-unused-vars, если x не используетсяНастройка
// eslint.config.js (flat config)
import js from '@eslint/js';
import reactHooks from 'eslint-plugin-react-hooks';
export default [
js.configs.recommended,
{
plugins: { 'react-hooks': reactHooks },
rules: {
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
eqeqeq: 'error',
'no-console': 'warn',
},
},
];Плагины: eslint-plugin-react, -import, -jsx-a11y, @typescript-eslint.
Зачем нужен
- Раннее обнаружение — ошибки в редакторе, до рантайма.
- Единый стиль в команде — без споров.
- Автофикс —
eslint --fix. - Интеграция — редактор, pre-commit (lint-staged), CI (блокировка мержа).
ESLint против Prettier
- ESLint — качество кода, логика, баги, стиль.
- Prettier — только форматирование.
Используют вместе.
Коротко для собеседования
ESLint — статический анализатор JS/TS: находит ошибки, баги (==, забытый await, зависимости хуков), нарушения стиля и best practices без запуска кода. Даёт единый стиль, раннюю ловлю проблем, автофикс (--fix) и интеграцию в редактор/pre-commit/CI. Дополняется Prettier (форматирование).