Вопрос проверяет понимание того, что TypeScript — это надстройка над JavaScript, которая работает только на этапе компиляции и не влияет на выполнение кода в рантайме.
TypeScript — это строгая статическая типизация, но она существует только на этапе разработки и компиляции. Когда код компилируется в JavaScript, все типы стираются. Это ключевое ограничение: TypeScript не добавляет никаких runtime-проверок.
function add(a: number, b: number): number {
return a + b;
}
// После компиляции в JavaScript:
function add(a, b) {
return a + b;
}Как видно, аннотации типов полностью удалены. В рантайме можно передать строку или объект, и TypeScript не сможет это предотвратить.
Для runtime-валидации используют сторонние библиотеки, например, Zod или io-ts, которые создают схемы, работающие и в рантайме. Также можно использовать пользовательские проверки с typeof или instanceof.
TypeScript полезен для статического анализа и предотвращения ошибок на этапе разработки, но не заменяет runtime-валидацию. Для критичных данных из внешних источников всегда используйте дополнительные проверки.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию