TypeScript

JavaScript с проверкой типов: код описывает, какие данные ожидаются, и ошибки находятся до запуска, а не у пользователей.

TypeScript — язык программирования от Microsoft, впервые представленный в 2012 году. Это надстройка над JavaScript: любой код на JavaScript — уже корректный TypeScript, а сверху добавлены типы. Перед запуском TypeScript проверяет программу и превращает ее в обычный JavaScript, который понимает браузер или сервер.

Пример

interface Order {
  id: number;
  status: "new" | "paid" | "cancelled";
  amount: number;
}

function paidTotal(orders: Order[]): number {
  return orders
    .filter(order => order.status === "paid")
    .reduce((sum, order) => sum + order.amount, 0);
}

Интерфейс Order описывает заказ: у статуса всего три допустимых значения. Если где-то в коде написать "payed" с опечаткой или передать в функцию строку вместо списка заказов, TypeScript сообщит об ошибке сразу, в редакторе.

Что дает TypeScript

  • Ошибки до запуска. Опечатки в названиях полей, неверные аргументы, забытые проверки на пустое значение — подробнее о подходе в термине «Статическая типизация».
  • Подсказки в редакторе. Редактор знает структуру каждого объекта и подсказывает поля и методы.
  • Безопасный рефакторинг. Переименовали поле — компилятор покажет все места, которые нужно поправить.
  • Договор между частями системы. Типы ответов API описывают один раз, и фронтенд с бэкендом работают по одной схеме.

Где используется

TypeScript стал стандартом для больших веб-проектов. На нем написан редактор Visual Studio Code, фреймворк Angular, его поддерживают React, Next.js, Vue и React Native, на нем пишут серверы на Node.js. Новые версии Node.js умеют запускать TypeScript напрямую, просто отбрасывая типы.

Ограничения

Типы проверяются только при сборке: во время работы программы их уже нет. Поэтому данные, пришедшие снаружи — из формы, от чужого API, — все равно нужно проверять, например библиотеками вроде Zod. А сложные типы иногда превращаются в отдельную головоломку. Но для систем, которые годами развивает команда, плата за аннотации окупается быстро: меньше ошибок в работе и смелее изменения.