← Ко всем open source проектам

TypeScript

microsoft/TypeScript

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

Форки 13,436
Автор microsoft
Язык TypeScript
Лицензия Apache-2.0
Обновлено 2026-06-07

Что это такое

TypeScript — язык поверх JavaScript, который добавляет статические типы и компилируется в обычный JavaScript. Код после сборки остается понятным для браузеров, Node.js и других сред, но разработчик получает проверку типов, автодополнение и навигацию по проекту до выполнения программы.

Репозиторий microsoft/TypeScript содержит компилятор, языковой сервис, тесты, документацию и инфраструктуру выпуска пакета `typescript`. Именно отсюда выходят версии, которые затем устанавливаются через npm и используются редакторами.

Как появился и почему прижился

TypeScript появился как ответ на рост JavaScript-приложений. Когда кодовая база маленькая, динамика языка удобна. Когда проект разрастается до сотен модулей и нескольких команд, становится важнее понимать форму данных, контракты функций и последствия переименований.

Язык прижился благодаря мягкой миграции. Его можно добавлять постепенно: сначала проверять отдельные файлы, потом описывать типы внешних библиотек, затем ужесточать правила. При этом экосистема JavaScript не ломается.

Что лежит внутри

Главные части проекта — компилятор `tsc`, проверка типов, преобразование синтаксиса, сервер языка для редакторов и набор тестов совместимости. Важный факт для текущего состояния репозитория: часть новых исправлений и работы вокруг будущих версий вынесена в соседний TypeScript Go-проект, поэтому вклад в основной репозиторий сейчас более ограничен.

Типизированная функция

Пример показывает базовый смысл TypeScript: контракт функции записан рядом с кодом, а ошибка в форме данных ловится до запуска.

Язык: TypeScript
type User = {
  id: number;
  name: string;
};

function formatUser(user: User): string {
  return `${user.id}: ${user.name}`;
}

formatUser({ id: 7, name: "Ada" });

Где полезен

TypeScript особенно полезен в приложениях с большим числом экранов, API-контрактов, общих компонентов и долгой жизнью кода. Он снижает стоимость изменений: редактор показывает, какие места затронуты, а компилятор ловит часть ошибок до тестов.

Для маленьких одноразовых скриптов типы могут казаться лишними. Но как только данные начинают передаваться между слоями приложения, явные типы помогают не держать все в голове.

Сильные стороны и ограничения

Сильная сторона — совместимость с JavaScript и мощная поддержка редакторов. TypeScript не просит выбросить экосистему, а добавляет поверх нее слой проверки.

Ограничение — типы не гарантируют правильность программы целиком. Они помогают с формой данных и контрактами, но не заменяют тесты, валидацию входящих данных и здравый смысл в архитектуре.