Выбор ответа Senior tsconfig и декларации обновлено

isolatedModules и транспиляция по файлу

Вопрос

Зачем включают isolatedModules, если сборку делает esbuild, swc или Babel?

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

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

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

Коротко

Правильный ответ: Они транспилируют по файлу и не видят, что имя это тип: флаг ловит такие места. Однофайловые транспиляторы просто стирают типы и не видят соседние файлы. export { User } from './types' для них неоднозначен: если User тип, реэкспорт надо убрать, иначе рантайм упадёт. isolatedModules заставляет писать такие места явно…

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

  1. Он ускоряет tsc в 10 раз, отключая проверку типов в соседних файлах
  2. Он включает полноценную проверку типов внутри esbuild, swc и Babel
  3. Он запрещает импорт из node_modules без явного указания .d.ts
  4. Они транспилируют по файлу и не видят, что имя это тип: флаг ловит такие местаправильный ответ

Разбор

Однофайловые транспиляторы просто стирают типы и не видят соседние файлы. export { User } from './types' для них неоднозначен: если User тип, реэкспорт надо убрать, иначе рантайм упадёт. isolatedModules заставляет писать такие места явно (export type), и tsc ловит их заранее. Проверку типов флаг не отключает и в esbuild её не добавляет, к node_modules отношения не имеет.

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

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

Термины по теме