Выбор ответа Middle Линтеры и форматирование обновлено

Заменяет ли ESLint проверку типов

Вопрос

В проекте на TypeScript настроен typescript-eslint, и CI запускает только eslint .. Чего не хватает?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Шага tsc --noEmit: ESLint не делает полную проверку типов. typescript-eslint использует информацию о типах в некоторых правилах (например, no-floating-promises), но ошибки компиляции вроде несовместимых типов аргументов выдаёт только компилятор.

Варианты ответа

  1. Ничего, typescript-eslint полностью проверяет типы проекта
  2. Шага tsc --noEmit: ESLint не делает полную проверку типовправильный ответ
  3. Prettier, без него ESLint не работает с TypeScript
  4. Запуска ESLint дважды, с типами и без

Разбор

typescript-eslint использует информацию о типах в некоторых правилах (например, no-floating-promises), но ошибки компиляции вроде несовместимых типов аргументов выдаёт только компилятор. Поэтому в CI обычно два шага: tsc --noEmit и eslint .. Сборщики вроде Vite и esbuild тоже не проверяют типы, они их просто вырезают.

  • Полную проверку делает только tsc (или другой проверщик типов).
  • ESLint работает и без Prettier.
  • Повторный запуск ничего не добавит.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.