PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Зачем нужен 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 (форматирование).

Другие вопросы раздела