> Какие сущности TypeScript остаются в рантайме после транспиляции (TypeScript)
Уровень: middle · Роль: frontend · Категория: Технические вопросы
Компании: ЛОЦИЯ
Стек: TypeScript
> Пример ответа
В TypeScript после транспиляции в JavaScript в рантайме остаются только те сущности, которые имеют прямое отражение в JS. К ним относятся:
-
Классы - полностью сохраняются, так как ES6 классы являются частью JavaScript.
-
Перечисления (enum)- компилируются в объекты JavaScript, если не используется
const enum(который инлайнится). -
Пространства имен (namespace) - компилируются в объекты с вложенными свойствами.
-
Декораторы- остаются как функции, если включена опция
experimentalDecorators. -
Типы, интерфейсы, дженерики, type aliases - полностью удаляются, так как существуют только на этапе проверки типов.
-
Модификаторы доступа (public, private, protected) - удаляются, так как не имеют аналогов в JS (кроме приватных полей с
#). -
Абстрактные классы и методы - компилируются в обычные классы, абстракция теряется.
Таким образом, в рантайме остаются только конструкции, которые имеют смысл в JavaScript: классы, enum (кроме const), namespace, декораторы и обычные функции/объекты. Всё, что связано с системой типов, исчезает.
> Похожие задачи по frontend
Что может быть неправильно в решении функции для вычисления площади фигур с использованием типов и интерфейсов TypeScript
Почему проверка типа через instanceof не работает с интерфейсами в TypeScript
Как реализовать динамически настраиваемое поле в интерфейсе TypeScript
Какие модификаторы классов есть в TypeScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью