intermediate

ESLint

Применяйте семантические правила JS/TS через scoped configs, plugins, parser options и интеграцию с CI.

ESLint проверяет семантические и стилистические правила через AST. В TypeScript добавляют parser options и часто type-aware правила `typescript-eslint` для promises, imports и небезопасного `any`.

Современные конфиги — flat config (`eslint.config.js`) с базой, фреймворком (React) и override для тестов. Severity по терпимости команды: error для корректности, warning только если actionable.

					// eslint.config.js (эскиз)
export default [
  { files: ['**/*.{ts,tsx}'], languageOptions: { parserOptions: { project: true } } },
  { rules: { 'no-unused-vars': 'error' } },
];
				

На интервью: flat vs legacy, стоимость type-aware lint, выбор plugins, CI с `--max-warnings 0` и границы безопасного auto-fix.

Типовые ошибки: шумные правила, которые игнорируют; type-aware lint на всём монорепо без кэша; дублирование Prettier в ESLint.

Компромисс — предотвращение багов против latency feedback и поддержки правил.

Чеклист:

  • Plugins под стек (TS, React, a11y).
  • Actionable rules.
  • ESLint в CI с ясной политикой падений.
  • Форматирование отдельно от semantic lint.