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.