Что это простыми словами
ESLint — это программа-помощник, которая проверяет код на JavaScript и указывает на ошибки и неаккуратности ещё до запуска.
Аналогия: представьте проверку орфографии в Word. Вы пишете текст, а красные подчёркивания сразу показывают опечатки — не нужно ждать, пока кто-то прочитает и заметит ошибку. ESLint делает то же самое с кодом: подчёркивает забытые точки с запятой, неиспользуемые переменные, опасные конструкции — всё, что может привести к багам или выглядит неаккуратно.
Это особенно важно в командах: когда десять человек пишут код, ESLint следит, чтобы у всех был один стиль — так проще читать чужой код и работать вместе.
Официальное определение
Теперь, когда суть понятна, вот как ESLint описывают в вакансиях и документации. Эту формулировку вы будете встречать у заказчика, в резюме и в речи разработчиков — теперь вы понимаете, что за ней стоит.
«ESLint — статический анализатор кода для JavaScript и TypeScript, который находит проблемы на основе настраиваемых правил и может автоматически исправлять часть из них».
Разберём по словам. «Статический анализатор» — программа проверяет код, не запуская его: смотрит на текст и находит подозрительные места. «Настраиваемые правила» — команда сама решает, что считать ошибкой: кому-то важны точки с запятой, кому-то нет, ESLint подстраивается. «Автоматически исправлять» — многие проблемы ESLint умеет чинить сам одной командой, не заставляя разработчика исправлять вручную.
Какую задачу решает
ESLint ловит проблемы на самой ранней стадии — ещё в редакторе кода, до того как программа запустится. Он находит:
Потенциальные баги: переменную объявили, но нигде не используют — возможно, это опечатка в названии.
Опасные конструкции: код, который работает, но может неожиданно сломаться при изменении.
Нарушения стиля: один разработчик ставит пробелы после скобок, другой нет — ESLint приводит всё к единому виду.
Главная ценность — экономия времени. Без ESLint разработчик увидит ошибку только когда запустит код или когда её найдёт коллега при проверке. С ESLint большинство проблем видны сразу, как опечатки в Word.
Кто им пользуется
ESLint привязан к языку JavaScript (и TypeScript), поэтому им пользуются все, кто на нём пишет:
Frontend-разработчики — основная аудитория. Любой проект на React, Vue или Angular почти наверняка использует ESLint.
Backend-разработчики на Node.js — JavaScript работает не только в браузере, но и на сервере.
Fullstack-разработчики, которые пишут и клиентскую, и серверную часть на JavaScript.
В вакансиях ESLint почти всегда встречается вместе с JavaScript или TypeScript — это их стандартный инструмент. Если видите требование «знание ESLint» в описании фронтенд-вакансии, это нормально и ожидаемо.
Аналоги / чем заменяется
Есть другие инструменты для проверки JavaScript-кода, но ESLint — безусловный лидер:
JSHint — предшественник ESLint, встречается в старых проектах, но новые уже пишут с ESLint.
StandardJS — линтер с жёстко заданными правилами, без настройки. Для тех, кто не хочет спорить о стиле кода.
TSLint — раньше был линтером для TypeScript, но больше не развивается. Его заменил ESLint с поддержкой TypeScript.
Переход между линтерами несложный: человек, который работал с JSHint или TSLint, освоит ESLint за пару дней. Логика везде одна — проверяй код на проблемы, отличаются только настройки.
Что не путать
ESLint ≠ Prettier. Это главная путаница. ESLint ищет ошибки и проблемы в логике кода, а Prettier — это форматтер, он просто красиво расставляет отступы и переносы строк. Часто они работают вместе: Prettier приводит код в порядок внешне, а ESLint следит за содержанием.
ESLint ≠ компилятор. Компилятор переводит код в понятный компьютеру вид, а ESLint только проверяет и указывает на проблемы. Он не влияет на то, как код будет работать.
ESLint ≠ тесты. Тесты запускают код и проверяют, правильно ли он работает. ESLint смотрит на текст кода, не запуская его, и ищет подозрительные места.
ESLint ≠ язык программирования. Это вспомогательный инструмент для работы с JavaScript, а не язык сам по себе.
Насколько это важно при отборе
Короткий ответ: ESLint не повод отбраковывать кандидата. Это инструмент, который осваивается за несколько дней.
Если разработчик умеет писать на JavaScript или TypeScript, но в резюме не упомянут ESLint — это не проблема. Скорее всего, он им пользовался, просто не счёл важным указывать. А если и не пользовался, то разберётся за пару дней работы: ESLint настраивается один раз в проекте, дальше он просто работает в фоне.
Что действительно важно — чтобы человек понимал зачем нужны линтеры и умел писать чистый код. Если кандидат пишет аккуратно, следит за качеством и понимает ценность автоматических проверок — конкретный инструмент вторичен.
Когда ESLint может стать жёстким требованием: если компания ищет человека на краткосрочный проект или нужен кто-то, кто выйдет и сразу начнёт работать без адаптации. Но и в этом случае отсутствие ESLint в резюме — повод уточнить на собеседовании, а не автоматически отклонять.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.