Выбор ответа Senior tsconfig и декларации обновлено
isolatedModules и транспиляция по файлу
Вопрос
Зачем включают isolatedModules, если сборку делает esbuild, swc или Babel?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Они транспилируют по файлу и не видят, что имя это тип: флаг ловит такие места. Однофайловые транспиляторы просто стирают типы и не видят соседние файлы. export { User } from './types' для них неоднозначен: если User тип, реэкспорт надо убрать, иначе рантайм упадёт. isolatedModules заставляет писать такие места явно…
Варианты ответа
- Он ускоряет
tscв 10 раз, отключая проверку типов в соседних файлах - Он включает полноценную проверку типов внутри esbuild, swc и Babel
- Он запрещает импорт из node_modules без явного указания
.d.ts - Они транспилируют по файлу и не видят, что имя это тип: флаг ловит такие местаправильный ответ
Разбор
Однофайловые транспиляторы просто стирают типы и не видят соседние файлы. export { User } from './types' для них неоднозначен: если User тип, реэкспорт надо убрать, иначе рантайм упадёт. isolatedModules заставляет писать такие места явно (export type), и tsc ловит их заранее. Проверку типов флаг не отключает и в esbuild её не добавляет, к node_modules отношения не имеет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.