О разделе
TypeScript — это JavaScript с проверкой типов до запуска. Вы пишете файлы .ts, компилятор tsc сверяет код с контрактами и выдаёт обычный JavaScript. В браузере и Node.js выполняется только JS; подсказки вроде name: string в итоговый файл не попадают.
Раздел ведёт от типов и первой программы до TypeScript и React, Node.js и паттернов.
- Краткий обзор в курсе JavaScript — статья 30
- Таблицы синтаксиса и
tsconfig— справочник 301 - Карта всех статей — Основы TypeScript и структура языка
Сначала: Что такое код и как он работает — компиляция, интерпретация, исходный код. Для сравнения динамической типизации — типы в JavaScript. Если статическая типизация знакома по C# — полезно свериться с типами в C#.
TS не заменяет JavaScript в браузере. Аннотации типов исчезают при компиляции — в dist/ остаётся JS. Подробнее — архитектура компиляции и первая программа.
Изучайте JavaScript как базу (синтаксис, Promise, модули), затем переходите сюда за типами, tsconfig и практикой крупных проектов. Event loop и async в JS — асинхронность JS; типизация Promise — async в TypeScript.
Карта ключевых тем
| Тема | Статья |
|---|---|
| Что такое TypeScript, надмножество JS | intro, история, типы §введение |
| Сравнение JavaScript и TypeScript | Сравнение JS и TS |
| Проблемы JavaScript и роль TypeScript | история, сравнение JS и TS, типы и типизация |
| Статическая типизация, типобезопасность | Типы и типизация, рекомендации |
| Утиная и структурная типизация | Типы и типизация, классы |
| Проектирование типов, LSP (Лисков) | типы §проектирование, Паттерны |
| Типы и значения, примитивы, enum, tuple | Типы и типизация, коллекции |
| Вывод типов, слишком широкий тип, narrowing | Типы §inference, §narrowing, переменные |
any / unknown, утверждения, @ts-expect-error | Типы §any и unknown, ветвления §утверждения, рекомендации |
as const, satisfies, template literal types | Типы §as const, дженерики §template |
| Discriminated union, boolean и union | Типы §discriminated, ветвления |
interface и type, import type | синтаксис |
| Функции: RORO, возвращаемый тип | функции |
Неизменяемость, readonly | переменные, типы §опциональность |
| Организация файлов в проекте | рекомендации, экосистема |
Обязательны ли аннотации let x: T | переменные |
| Проверка только на этапе TS | Компиляция |
| Type-driven development | рекомендации, функции |
Компилятор, TypeScript 7 (Go), --checkers, TypeScript Server | Компиляция, TypeScript Server |
| React / Node.js | TypeScript и React, TypeScript и Node.js |
| Дженерики, Omit, keyof, literal union, связанный выбор | дженерики, Типы и типизация |
Exclude / Extract, сужение по группам (Compat) | типы §utility, 24 §Compat |
Mapped types, PayloadMap[E], webhooks | 24 §сопоставленные, Паттерны в TypeScript |
tsx, сборка TS для GitHub Pages | Первая программа на TypeScript, Экосистема и архитектура TypeScript |
| Декораторы, примеси, паттерны | Декораторы в TypeScript, Паттерны в TypeScript |
| Миграция, monorepo, DefinitelyTyped | Рекомендации по разработке на TypeScript, Экосистема и архитектура TypeScript, Форматы и подключение TypeScript |
| Async, генераторы, TypeORM, практикум | Асинхронное программирование в TypeScript, Генераторы и итераторы в TypeScript, TypeORM, Простые приложения на TypeScript |
Полная нумерованная карта блоков — в Основы TypeScript и структура языка. Соответствие 18 разделам справочника 301 (основы типизации … расширение TS) — в индексе справочника.
С чего начать
Play ITЗагрузка интерактивного демо…
Play ITЗагрузка интерактивного демо…
Play ITЗагрузка интерактивного демо…
| Шаг | Материал | Назначение |
|---|---|---|
| 1 | Основы и карта раздела | Полный маршрут по темам |
| 1a | Сравнение JS и TS | Когда что выбирать, плюсы и минусы |
| 2 | Первая программа | npm, tsc, первый dist/ |
| 3 | Типы и типизация | Ядро языка — контракты данных |
| 4 | Рекомендации | strict, unknown, CI |
| 5 | Простые приложения | Мини-проекты |
| 6 | Async | Promise<T>, состояния UI |
| 7 | TypeScript и React или Node.js | Прикладной стек |
Что входит в раздел
Раздел проходит путь от синтаксиса и типов через функции, классы и коллекции к компиляции, tsserver и экосистеме. Прикладной блок — TypeScript и React, Node.js, TypeORM, Паттерны и Обработка ошибок. Навигация по таблицам — индекс и справочник 301; в конце — итоги и чек-лист.
Где применяют TypeScript
| Область | Примеры |
|---|---|
| Frontend | React, Vue, Angular, Next.js, SvelteKit |
| Backend | Node.js, NestJS, Express + TS |
| Mobile / desktop | React Native, Ionic, Electron |
| Инструменты | VS Code, часть CLI и сборщиков |
Частые ошибки при старте
| Ошибка | Что делать |
|---|---|
| Путать TS с отдельным runtime | TS компилируется в JS — см. Архитектура компиляции TypeScript и runtime |
| Игнорировать ошибки компилятора | Исправлять; не отключать strict без причины — Рекомендации по разработке на TypeScript |
Везде any | unknown + проверки; типы API в types/ — Типы данных и типизация в TypeScript |
| Учить TS без JS | Сначала база JavaScript |
| Дублировать справочник в голове | Учёба — статьи раздела; таблицы — Справочник по TypeScript |
Основы TypeScript и структура языка
Карта учебного раздела TypeScript — маршруты по блокам, связь с JS и справочником 301, точки входа для новичка и практика.
Типы данных и типизация в TypeScript
Система типов TypeScript — статическая типизация, type safety, структурная и утиная типизация, LSP, примитивы, сужение типов, utility types.
Переменные и константы в TypeScript
let и const, вывод типов, явные аннотации, readonly, деструктуризация и strictNullChecks при работе с переменными.
Операторы и условные ветвления в TypeScript
Сравнения, логика, narrowing, discriminated union, switch с never, операторы ?? и in — ветвления со статической проверкой.
Циклы в TypeScript
for, for...of, for...in, while и типизированный перебор коллекций — кратко, с опорой на JavaScript и методы массивов.
Функции в TypeScript
Типизация параметров и результата, типы функций, перегрузки, callback, this, rest/spread и generic-функции.
Архитектура компиляции TypeScript и runtime
Этапы компиляции tsc, emit в JavaScript, target и module, declaration, source maps, роли tsc и bundler, GC в runtime.
TypeScript Server
tsserver, Language Service Protocol, IntelliSense, диагностика в IDE, workspace version и project references.
Асинхронное программирование в TypeScript
Promise<T>, async/await, типизация ответов API, discriminated union для состояний загрузки и безопасный catch с unknown.
Объекты и классы в TypeScript
interface и type для объектов, классы, модификаторы доступа, structural typing, abstract и implements, с отсылкой к номинальной модели C#.
Коллекции и массивы в TypeScript
Array<T>, кортежи, Record, Map, Set, readonly-массивы, as const и типизированные методы map/filter/reduce.
Справочник по TypeScript
Индекс раздела TypeScript — соответствие 18 блокам справочника 301 и учебным статьям 5-10.
События и обработка событий в TypeScript
Типизация DOM-событий, делегирование, CustomEvent с detail и связь с React synthetic events.
TypeScript и React
Типизация props и state, хуки, события форм, LoadState в компонентах и слой типов API в React + TypeScript.
TypeScript и Node.js
Backend на Node — tsconfig NodeNext, DTO и domain, Express-стиль handlers, fs/promises и typecheck в CI.
Декораторы в TypeScript
Декораторы классов и методов, experimentalDecorators, Stage 3, NestJS и когда обойтись без метапрограммирования.
Дженерики в TypeScript
Generic-функции и классы, constraints, keyof, связанные generic, infer, Path/PathType и type-safe API.
Генераторы и итераторы в TypeScript
Generator<T>, Iterable, AsyncGenerator, for await...of и типизация ленивых последовательностей.
TypeORM
Сущности, репозитории, миграции и связи в TypeORM с TypeScript — обзор для Node backend.
Обработка ошибок в TypeScript
throw, Result, Option, unknown в catch, доменные ошибки, HTTP-маппинг и Zod на границе API.
Паттерны в TypeScript
Discriminated union, branded types, mixins, фабрики, DTO-мапперы, type-safe events и exhaustive switch в прикладном TS.
Сравнение JavaScript и TypeScript
Отличия JavaScript и TypeScript для новичка — термины, таблица, примеры кода, плюсы и минусы и выбор стека под задачу.
Экосистема и архитектура TypeScript
Компилятор, DefinitelyTyped, ESLint, монорепозиторий, project references, CI typecheck и типичные стеки frontend/backend.
Первая программа на TypeScript
Установка TypeScript, tsconfig, первая типизированная программа в Node.js, проверка ошибок до запуска и скрипты typecheck.
Простые приложения на TypeScript
Практикум — Todo CLI, форма в браузере и type-safe API-клиент с LoadState, guards и strict-типизацией.
Рекомендации по разработке на TypeScript
Strict-режим, unknown вместо any, структура типов, миграция с JS, Zod и code review в TypeScript-проектах.
История TypeScript
От Microsoft 2012 к open source — эволюция языка, strict, экосистема и место TypeScript в современной разработке.
Синтаксис и пунктуация TypeScript
Аннотации типов, выбор между interface и type, import type, расширения .ts и .tsx, пунктуация и связь со справочником 301.
Форматы и подключение TypeScript
tsconfig.json, ESM и CommonJS, пути импорта, @types, Vite и Node.js — как подключить TypeScript в проект.
TypeScript — итоги
Итоги раздела TypeScript — FAQ, главные выводы и куда идти после прохождения карты статей.
TypeScript — чек-лист
Чек-лист раздела TypeScript — вопросы для самопроверки по синтаксису, типам, async, React, Node и продвинутым темам.
TypeScript — о разделе
TypeScript как язык с проверкой типов — основы, экосистема, типизация, компиляция, практика с React и Node.js.