Перейти к основному содержимому

Основы TypeScript и структура языка

Разработчику Архитектору

Дальше: О разделе · Первая программа · Типы и типизация · Обзор TypeScript в JS

Play ITЗагрузка интерактивного демо…


Основы TypeScript

Что такое TypeScript?

TypeScript — язык программирования со следующими особенностями:

  • Типизация — статическая и структурная проверка на этапе компиляции. Компилятор выводит типы там, где вы их не пишете (const, generics). В runtime типы стираются — выполняется обычный JavaScript. Подробнее — Типы и типизация.
  • Парадигма — мультипарадигменный язык. Классы и интерфейсы (ООП), функции высшего порядка и generics (функциональный стиль), императивный код. Надмножество JavaScript.
  • Уровень — высокоуровневый. Надстройка над JS с системой типов.
  • Выполнение — транспилируемый. Исходники .ts проверяет tsc, esbuild или swc и превращает в JavaScript. Runtime — движки V8, SpiderMonkey и др.
  • Память — как у JavaScript, автоматическая (сборщик мусора). См. сборка мусора.
  • Платформа — кроссплатформенный. Транспиляция в ES3–ESNext; запуск в браузере, Node.js, Deno, Bun.
  • Формат разработки — нужны tsconfig.json и шаг сборки или watch. Файлы .ts браузер напрямую не исполняет (исключения — Deno и dev-серверы с on-the-fly трансформацией).
  • Направление — фронтенд (React, Angular, Vue), fullstack и бэкенд (Node.js), desktop (Electron), мобильные приложения на базе JS.
  • REPLTypeScript Playground, tsx / ts-node, интерактивный режим Deno.
  • Поколение — с 2012 года (Microsoft), активные релизы каждые несколько месяцев. История — История TypeScript.
  • Параллелизм — как у JavaScript. Однопоточный event loop, Promise и async/await. Параллелизм через Web Workers и worker_threads.
  • Безопасность — проверка типов до запуска снижает класс ошибок по сравнению с чистым JS. В runtime те же риски; гарантии ослабляют any, type assertion (as) и @ts-ignore.

Если какой-то пункт из списка непонятен — подробные определения и примеры в Язык программирования.


Карта учебного раздела

Здесь собрана карта раздела: куда идти дальше и в каком порядке. У каждой темы своя статья с примерами, пояснениями после кода и блоком практики. Таблицы синтаксиса и tsconfig собраны в Справочник по TypeScript; короткий вход из курса JavaScript — в Обзор TypeScript в JS.

Старт: О разделеПервая программаТипы и типизация.

Соответствие учебным темам

ТемаСтатья
Что такое TypeScript, плавный входintro, Первая программа на TypeScript, TypeScript
Сравнение JavaScript и TypeScriptСравнение JS и TS
История, надмножество JS, проблемы JSИстория TypeScript, Сравнение JS и TS, Типы данных и типизация в TypeScript
Статическая / структурная типизация, type safety, LSPТипы данных и типизация в TypeScript, Объекты и классы в TypeScript, Паттерны в TypeScript
Типы = JS + расширения; enum, tupleТипы данных и типизация в TypeScript, Коллекции и массивы в TypeScript
Аннотации и вывод типовПеременные и константы в TypeScript, 10 §inference, 10 §narrowing
any / unknown, утверждения, @ts-expect-errorТипы §any/unknown, Ветвления §assertions, Рекомендации
Discriminated union, boolean и unionТипы, Ветвления, Асинхронность
as const, satisfies, template literalsТипы, Дженерики
interface и type, import type, организация файловСинтаксис, Рекомендации, Экосистема
Функции: RORO, возвращаемый типФункции
Проверка на этапе компиляцииАрхитектура компиляции TypeScript и runtime, TypeScript Server
Компилятор, TypeScript 7 (Go), --checkers / --builders, tsserverАрхитектура компиляции TypeScript и runtime, TypeScript Server
Модули, monorepo, NPM, DefinitelyTypedЭкосистема и архитектура TypeScript, Форматы и подключение TypeScript
Type-driven, продвинутые типы, дженерикиРекомендации по разработке на TypeScript, Типы данных и типизация в TypeScript, Дженерики в TypeScript
Ошибки, декораторы, примеси, паттерныОбработка ошибок в TypeScript, Декораторы в TypeScript, Паттерны в TypeScript
React, Node, async, генераторы, TypeORMTypeScript и React, TypeScript и Node.js, Асинхронное программирование в TypeScript, Генераторы и итераторы в TypeScript, TypeORM
Миграция JS→TS, мини-практикумРекомендации по разработке на TypeScript, Простые приложения на TypeScript

Соответствие справочнику 301 (18 блоков)

Полная таблица "тема → учебная статья → §301" — в индексе справочника. Кратко:

Блок 301Учебные статьи
1–3 Основы, составные, union/intersectionТипы данных и типизация в TypeScript, Переменные и константы в TypeScript, Операторы и условные ветвления в TypeScript, Коллекции и массивы в TypeScript
4–6 Функции, интерфейсы, классыФункции в TypeScript, Синтаксис и пунктуация TypeScript, Объекты и классы в TypeScript
7–8 Utility и advancedТипы данных и типизация в TypeScript, Дженерики в TypeScript
9–11 Модули, декларации, tsconfigФорматы и подключение TypeScript, Архитектура компиляции TypeScript и runtime, Первая программа на TypeScript
12 ДекораторыДекораторы в TypeScript
13–14 DOM, фреймворкиСобытия и обработка событий в TypeScript, TypeScript и React, TypeScript и Node.js
15–16 Паттерны, практикиПаттерны в TypeScript, Рекомендации по разработке на TypeScript, Обработка ошибок в TypeScript
17–18 Инструменты, расширение TSЭкосистема и архитектура TypeScript, Первая программа на TypeScript, Архитектура компиляции TypeScript и runtime, TypeScript Server

Рекомендуемые маршруты

ЦельПорядок статей
Новичокintro → 29 → 4 → 10 → 11 → 12 → 14 → 17 → 5
Frontend4 → 10 → 14 → 17 → 20 → 21 → 6
Backend4 → 9 → 10 → 17 → 22 → 27 → 26 (опц.)
Инженерия3 → 6 → 9 → 15 → 16 → 28 → 24

Блок A — старт и экосистема

СтатьяТема
1Основы языкакарта раздела
2Экосистемаmonorepo, CI, @types
3Первая программаtsc, dist/
4Простые приложенияпрактикум
5Рекомендацииstrict, Zod, миграция
6Историяконтекст языка
6aСравнение JS и TSвыбор технологии, плюсы и минусы
7Синтаксисinterface и type

Блок B — синтаксис и типы

СтатьяТема
8Подключениеtsconfig, ESM/CJS
9Типыunion, narrowing, utility
10Переменныеconst, readonly
11Ветвленияdiscriminated union
12Циклыfor...of, кратко
13Функцииoverloads, this
14Компиляцияtsc, source maps
15TypeScript ServerIDE, LSP

Блок C — ООП, async, события

СтатьяТема
16АсинхронностьPromise<T>, LoadState
17Классыstructural typing
18Коллекцииtuple, Map, Record
19СобытияDOM, CustomEvent
20Индекс справочникамаршрут к Справочник по TypeScript

Блок D — стек и продвинутое

СтатьяТема
21TypeScript и Reactprops, hooks
22Node.jsDTO, API
23ДекораторыNest, TypeORM
24Дженерики<T>, constraints
25ГенераторыGenerator, async iter
26TypeORMentity, repo
27ОшибкиResult, unknown
28Паттерныunion-команды, factory

Как устроен раздел

СлойГдеНазначение
Учебные статьи5-10-typescript/*.mdобъяснение, примеры, практика
Обзор в курсе JSTypeScriptвход из JavaScript
Справочник-шпаргалкаСправочник по TypeScriptтаблицы, advanced
ИндексСправочник по TypeScriptнавигация к 301, не дублирует его

Завершение раздела

МатериалНазначение
TypeScript — итоги — итогиFAQ, типичные ошибки
TypeScript — чек-лист — чек-листсамопроверка перед практикой

Важно про практику

TypeScript особенно полезен в командах и долгоживущих проектах: типы задают контракт между модулями. Включайте strict с первого дня — рекомендации. Мини-проекты — Простые приложения на TypeScript.


Базовые источники