Что такое TypeScript

TypeScript — это язык программирования, разработанный компанией Microsoft как надмножество JavaScript. Он добавляет к JavaScript статическую типизацию и другие возможности, которые помогают писать более надёжный и поддерживаемый код. Любая программа на JavaScript является корректной программой на TypeScript, что делает переход к нему постепенным и безопасным.

Статическая и динамическая типизация

В JavaScript типы переменных определяются во время выполнения (динамическая типизация). Это даёт гибкость, но может привести к ошибкам, которые проявляются только при запуске программы:

function greet(name) {
  return "Hello, " + name.toUpperCase();
}
greet(); // вызов без аргумента → ошибка во время выполнения

TypeScript проверяет типы ещё до запуска программы (статическая типизация). Ошибки выявляются на этапе написания кода или сборки:

function greet(name: string) {
  return "Hello, " + name.toUpperCase();
}
greet(); // ошибка компиляции: отсутствует обязательный аргумент

TypeScript — расширение, а не замена

TypeScript не заменяет JavaScript. Наоборот, он полностью совместим с ним:

  • Любой JavaScript-файл можно переименовать в .ts — он останется рабочим.
  • Все существующие библиотеки JavaScript можно использовать в TypeScript.
  • TypeScript добавляет синтаксис для описания типов, но не меняет поведение самого языка.

Транспиляция в JavaScript

Браузеры и среды выполнения (например, Node.js) понимают только JavaScript. Поэтому код на TypeScript должен быть преобразован (транспилирован) в JavaScript перед запуском. Это делает компилятор TypeScript (tsc):

Исходный файл app.ts:

const message: string = "Hello, TypeScript";
console.log(message);

После компиляции (tsc app.ts) получается app.js:

var message = "Hello, TypeScript";
console.log(message);

Типы исчезают — они нужны только на этапе разработки.

Преимущества использования TypeScript

  • Раннее обнаружение ошибок: многие ошибки находятся ещё до запуска программы.
  • Лучшее автодополнение: редакторы (VS Code, WebStorm и др.) предлагают точные подсказки благодаря информации о типах.
  • Самодокументируемый код: типы явно описывают, какие данные ожидаются и возвращаются.
  • Поддержка крупных проектов: упрощает рефакторинг и чтение чужого кода.

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