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

Справочник по TypeScript

Краткий индекс учебного раздела 5-10-typescript. Пошаговое обучение — карта и О разделе. Таблицы синтаксиса — в справочнике 301; здесь — куда идти за объяснением и практикой по каждому из 18 блоков 301.

Два слоя материалов

Учебные статьи (5-10-typescript/*.md) — примеры, «Разбор:», практика.
Справочник 301 — таблицы, полный перечень флагов tsconfig, advanced-типы без дублирования в каждой статье.


Карта: 18 блоков справочника 301

Тема (301)Учебная статьяТаблицы и детали
1Основы типизации10 — типы, 11 — переменныеСправочник — основы типизации
2Составные типы10, 19 — коллекцииСправочник — составные типы
3Объединения и пересечения10, 12 — ветвления, 8 — синтаксис §&Справочник — объединения и пересечения
4Функции14 — функцииСправочник — функции
5Интерфейсы8 — синтаксис, 10, 18Справочник — интерфейсы
6Классы18 — объекты и классыСправочник — классы
7Утилитарные типы10 §utility, 14 §утилиты, 24Справочник — утилитарные типы
8Расширенные возможности типов24 — дженерики, 17Справочник — расширенные типы
9Модули и пространства имён9 — подключение, 4 §модули, 8 §import typeСправочник — модули
10Декларации9 §декларации, 15 §.d.tsСправочник — декларации
11Конфигурация tsconfig.json9, 4, 6Справочник — tsconfig
12Декораторы23 — декораторыСправочник — декораторы
13DOM и окружение20 — события и DOMСправочник — DOM и окружение
14Интеграция с фреймворками21 — React, 22 — NodeСправочник — интеграция с фреймворками
15Распространённые паттерны28 — паттерны, 27 — ошибкиСправочник — распространённые паттерны
16Лучшие практики6 — рекомендацииСправочник — лучшие практики
17Инструменты и CLI4, 3 — экосистема, 15, 16Справочник — инструменты и CLI
18Расширение TypeScript16 §расширениеСправочник — расширение TypeScript

Рекомендуемый порядок по блокам 301

ЭтапБлоки 301Статьи
Старт1, 11, 174109
Синтаксис типов2, 3, 4, 519, 14, 8
ООП6, 718, 10
Продвинутое8, 1224, 23
Прикладное9, 10, 13, 149, 20, 21 или 22
Инженерия15, 16, 1828, 6, 16

Мини-шпаргалка

interface User {
id: string;
name: string;
role: "admin" | "user";
}

// Union и narrowing
type Id = string | number;
function isString(x: Id): x is string {
return typeof x === "string";
}

function formatId(id: Id): string {
if (isString(id)) return id.toUpperCase();
return id.toFixed(0);
}

// Utility
type PartialUser = Partial<Pick<User, "name">>;
type PublicUser = Omit<User, "role">;

// Generic
function first<T>(arr: T[]): T | undefined {
return arr[0];
}

const admin = first<User>([{ id: "1", name: "Ann", role: "admin" }]);

Разбор:

  • interface User — контракт объекта; role — literal union.
  • isString — type predicate для narrowing.
  • Partial<Pick<…>>, Omit — utility types (Справочник — утилитарные типы).
  • first<User>(…) — generic с сохранением типа элемента.

Официальные источники