Суть
JavaScript + обещания = TypeScript
TypeScript (TS) — это JavaScript плюс типы. Тип (type) — обещание о том, какие данные где: это число, это строка, у пользователя есть поля name и email.
TypeScript проверяет эти обещания до запуска — на этапе написания кода и сборки (build-time, подробнее об этом понятии вы уже встречали в блоке 1). Прямо в редакторе появляется красная подчёркивающая линия, если что-то не так. Чистый JavaScript нашёл бы ту же проблему только в рантайме (runtime) — в момент работы у реального пользователя, и уже в виде поломанной функции или пустого экрана.
Что конкретно TypeScript ловит заранее: опечатку в названии поля, передачу строки туда, где ждут число, обращение к полю объекта, которого не существует. Это не защита от всех ошибок — но это целый класс ошибок, который без типов обнаруживается только в работе.
📌 Простой признак TypeScript в проекте: файлы с расширением .ts или .tsx вместо .js / .jsx, а в корне проекта — файл tsconfig.json.
type User = { name: string; age: number }
// ошибка ещё в редакторе: age должно быть числом
const u: User = { name: "Аня", age: "тридцать" }
TypeScript подчёркивает несоответствие до запуска — строку положили туда, где ждут число.
Когда TypeScript оправдан, а когда нет — это честный вопрос. Серьёзное или растущее приложение, командная работа, важна надёжность → TypeScript почти всегда оправдан. Одноразовый быстрый прототип, крошечный скрипт → можно обойтись JavaScript. Большинство современных проектов (Next.js, Vite с React и другие популярные стартеры) включают TypeScript по умолчанию, поэтому агент выберет его автоматически, если вы не скажете иначе.