История TypeScript
Дальше: Экосистема · Первая программа · Обзор TypeScript в JS
Краткий обзор происхождения TypeScript, связи с JavaScript и направления развития. Это не хроника каждого релиза — для версий смотрите официальные release notes.
Дальше по разделу:
- Экосистема — инструменты и monorepo
- Первая программа на TypeScript — практический старт
Проблема, которую решали
К середине 2010-х JavaScript стал языком крупных приложений (SPA, Node-сервисы). Слабая статическая проверка усложняла:
- рефакторинг в командах десятков разработчиков;
- согласование контрактов между модулями;
- онбординг в большие кодовые базы.
TypeScript предложил опциональную статическую типизацию поверх JS без смены runtime.
Хронология
| Год | Веха |
|---|---|
| 2012 | Публичный анонс Microsoft, Андерс Хейльсберг |
| 2014 | Open source на GitHub |
| 2016+ | Массовое adoption в Angular, затем React/Vue |
| 2020+ | strict по умолчанию в шаблонах, project references |
| 2023–2025 | Нативный порт компилятора на Go (tsgo, @typescript/native-preview) |
| 2026 | TypeScript 7.0 — Go-компилятор стал основным в пакете typescript; ускорение ~8–12×, LSP language server |
| Сейчас | Стандарт де-факто для крупного frontend и многого backend |
TypeScript развивается вместе с ECMAScript: новые возможности JS получают проверку типов. Направление задаёт команда TypeScript и сообщество.
Философия надмножества JS
JavaScript ⊂ TypeScript (с типами)
│ │
└──── tsc ─────┘
▼
JavaScript (emit)
| Принцип | Смысл |
|---|---|
| Структурная типизация | форма важнее имени — Типы данных и типизация в TypeScript |
| Постепенное внедрение | .js + allowJs + миграция — Рекомендации по разработке на TypeScript |
| Стираемые типы | в runtime только JS — Архитектура компиляции TypeScript и runtime |
| Инструменты | tsserver, IDE — TypeScript Server |
TypeScript не конкурирует с JS как отдельный язык в браузере — он усиливает инженерный процесс. Развёрнутое сравнение двух подходов — Сравнение JavaScript и TypeScript.
Связь с ECMAScript и TC39
- Новые фичи JS (async/await, modules, decorators) сначала в стандарте, затем в TS.
- TypeScript иногда вводит конструкции раньше (например, часть utility types), затем упрощает при выравнивании со стандартом.
- Декораторы — долгий путь legacy → ES Stage 3 — Декораторы в TypeScript.
Где TypeScript сегодня
| Область | Примеры |
|---|---|
| Frontend | React, Vue, Angular, Next.js, Svelte (с TS) |
| Backend | Node, NestJS, Express + TS, Deno (native TS) |
| Mobile | React Native |
| Desktop | Electron |
| Инструменты | VS Code, часть инфраструктуры сборки |
Один язык на клиенте и сервере упрощает общие типы DTO в monorepo — Экосистема и архитектура TypeScript, TypeScript и Node.js.
Эволюция возможностей
- Generics, union/intersection — выразительная система типов.
strictи null-safety — меньшеundefinedв production.- Project references — масштаб monorepo.
satisfies, const type parameters — точный вывод без дублирования.- TypeScript 7.0 (2026) — нативный компилятор на Go как основной
tsc; параллельный type-checking, меньше RAM на крупных monorepo — Архитектура компиляции.
Детали синтаксиса — в статьях раздела и в Справочник по TypeScript.
Место TypeScript в инженерной практике
Понимание истории объясняет ожидания от языка:
- TS проверяет код на этапе разработки; в runtime остаётся обычный JS.
- Огромная экосистема
.d.ts— результат open source и DefinitelyTyped. - Разные мнения про
interfaceиtype— вопрос стиля команды, не "правильного" выбора — Синтаксис и пунктуация TypeScript.
Практические задания
- Прочитайте Handbook — Intro на англ. или обзор в intro.
- Сравните один фрагмент в Первая программа на TypeScript — с типом и без (мысленно уберите аннотации).
- Откройте Release Notes последней версии — 2–3 новые фичи.
- Посмотрите TypeScript GitHub — issues и roadmap.
- Сопоставьте стек вашего pet-проекта с таблицей выше.