Выбор ответа Middle Линтеры и форматирование обновлено
Заменяет ли ESLint проверку типов
Вопрос
В проекте на TypeScript настроен typescript-eslint, и CI запускает только eslint .. Чего не хватает?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Шага tsc --noEmit: ESLint не делает полную проверку типов. typescript-eslint использует информацию о типах в некоторых правилах (например, no-floating-promises), но ошибки компиляции вроде несовместимых типов аргументов выдаёт только компилятор.
Варианты ответа
- Ничего, typescript-eslint полностью проверяет типы проекта
- Шага
tsc --noEmit: ESLint не делает полную проверку типовправильный ответ - Prettier, без него ESLint не работает с TypeScript
- Запуска ESLint дважды, с типами и без
Разбор
typescript-eslint использует информацию о типах в некоторых правилах (например, no-floating-promises), но ошибки компиляции вроде несовместимых типов аргументов выдаёт только компилятор. Поэтому в CI обычно два шага: tsc --noEmit и eslint .. Сборщики вроде Vite и esbuild тоже не проверяют типы, они их просто вырезают.
- Полную проверку делает только
tsc(или другой проверщик типов). - ESLint работает и без Prettier.
- Повторный запуск ничего не добавит.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.