Есть ли проект с использованием TypeScript
Что проверяют
Писали ли вы на TypeScript всерьёз или только читали чужой код с типами. По деталям быстро видно, настраивали ли вы проект сами. Следом обычно спрашивают про tsconfig, про типизацию на границе с внешним миром и про то, как проект собирается и запускается.
Как отвечать
Возьмите один проект и расскажите его по пунктам, со своими фактами:
- что за сервис: назначение, фреймворк (NestJS, Fastify, Express с
@types/express), ORM или query builder (Prisma, TypeORM, Drizzle, Knex), объём кода и размер команды; - конфигурация: включён ли
strict, какиеmoduleиmoduleResolution(для Node обычноNodeNext), ESM или CommonJS и какие с этим были проблемы; - сборка и запуск:
tscвdist, esbuild или swc ради скорости,tsxдля разработки. Можно упомянуть, что свежие версии Node.js запускают.tsсами, вырезая типы, но только для синтаксиса без рантайм-кода:enumиnamespaceс кодом так не работают без дополнительного флага; - границы: типы стираются при компиляции, поэтому тело запроса, ответы чужих API и переменные окружения проверяют в рантайме через Zod, Valibot или class-validator;
- трудность и решение: миграция с JavaScript через
allowJsи постепенное включениеstrict, борьба сanyиз сторонних библиотек, общие типы между фронтендом и бэкендом.
Если коммерческого опыта нет, так и скажите и расскажите о пет-проекте или о JavaScript-проекте, где типы проверялись через JSDoc и checkJs. Главное, чтобы вы уверенно отвечали про unknown против any, дженерики и сужение типов.
Где спотыкаются
Отвечают «да, был» без подробностей. Интервьюер всё равно спросит детали, и паузы выдадут поверхностный опыт.
Уверены, что TypeScript защищает данные в рантайме. Невалидный JSON спокойно пройдёт через интерфейс, если не проверить его схемой.
Глушат ошибки компиляции через as any и // @ts-ignore и рассказывают об этом как о нормальной практике.