Отзывы ...................................................................................................... 10
Пролог ....................................................................................................... 12
Структура книги ..........................................................................................12
Стиль ..........................................................................................................13
Использование примеров кода ....................................................................15
Благодарности.............................................................................................16
От издательства ..........................................................................................17
Глава 1. Вступление........................................................................................18
Глава 2. TypeScript с высоты птичьего полета .................................................21
Компилятор.................................................................................................21
Система типов .............................................................................................23
Настройка редактора кода...........................................................................27
index.ts ........................................................................................................30
Упражнения к главе 2..................................................................................32
Глава 3. Подробно о типах ..............................................................................33
О типах .......................................................................................................34
Типы от а до я.............................................................................................35
Итоги...........................................................................................................65
Упражнения к главе 3..................................................................................66
Глава 4. Функции ............................................................................................67
Объявление и вызов функций......................................................................67
Полиморфизм..............................................................................................90
Разработка на основе типов ......................................................................108
Итоги.........................................................................................................109
Упражнения к главе 4................................................................................110
Глава 5. Классы и интерфейсы......................................................................111
Классы и наследование .............................................................................111
super .........................................................................................................117
Использование this в качестве возвращаемого типа ..................................117
Интерфейсы ..............................................................................................119
Классы структурно типизированы..............................................................126
Классы объявляют и значения, и типы ......................................................127
Полиморфизм............................................................................................131
Примеси ....................................................................................................132
Декораторы...............................................................................................135
Имитация финальных классов ...................................................................138
Паттерны проектирования.........................................................................139
Итоги.........................................................................................................142
Упражнения к главе 5................................................................................144
Глава 6. Продвинутые типы...........................................................................145
Связи между типами..................................................................................145
Тотальность ..............................................................................................165
Продвинутые типы объектов .....................................................................167
Продвинутые функциональные типы .........................................................177
Условные типы..........................................................................................180
Запасные решения ....................................................................................185
Имитация номинальных типов ...................................................................191
Безопасное расширение прототипа ...........................................................193
Итоги.........................................................................................................196
Упражнения к главе 6................................................................................197
Глава 7. Обработка ошибок...........................................................................198
Возврат null...............................................................................................199
Выбрасывание исключений .......................................................................200
Возврат исключений..................................................................................203
Тип Option.................................................................................................205
Итоги.........................................................................................................213
Упражнение к главе 7................................................................................214
Глава 8. Асинхронное программирование, конкурентность
и параллельная обработка..............................................................................215
Цикл событий ............................................................................................216
Работа с обратными вызовами...................................................................218
Промисы как здоровая альтернатива.........................................................221
async и await .............................................................................................227
Async-потоки .............................................................................................228
Типобезопасная многопоточность .............................................................231
Итоги.........................................................................................................245
Упражнения к главе 8................................................................................246
Глава 9. Фронтенд- и бэкенд-фреймворки.....................................................247
Фронтенд-фреймворки ..............................................................................247
Типобезопасные API..................................................................................260
Бэкенд-фреймворки...................................................................................262
Итоги.........................................................................................................264
Глава 10. Пространства имен и модули.........................................................265
Краткая история модулей JavaScript ..........................................................266
import, export.............................................................................................269
Пространства имен....................................................................................274
Слияние деклараций .................................................................................279
Итоги.........................................................................................................281
Упражнение к главе 10..............................................................................282
Глава 11. Взаимодействие с JavaScript ..........................................................283
Декларации типов .....................................................................................283
Поэтапная миграция из JavaScript в TypeScript ..........................................292
Поиск типов для JavaScript ........................................................................298
Использование стороннего кода JavaScript ................................................301
Итоги.........................................................................................................305
Глава 12. Создание и запуск TypeScript .........................................................306
Создание проекта в TypeScript ..................................................................306
Запуск TypeScript на сервере .....................................................................317
Запуск TypeScript в браузере .....................................................................318
Публикация TypeScript-кода на NPM...........................................................321
Директивы с тремя слешами......................................................................322
Итоги.........................................................................................................326
Глава 13. Итоги.............................................................................................327
Приложение A. Операторы типов ................................................................329
Приложение Б. Утилиты типов.....................................................................330
Приложение В. Область действия деклараций.............................................331
Генерирует ли декларация тип..................................................................331
Допускает ли декларация слияние.............................................................331
Приложение Г. Правила написания файлов деклараций
для сторонних модулей JavaScript...................................................................333
Типы экспорта...........................................................................................334
Расширение модуля...................................................................................337
Приложение Д. Директивы с тремя слешами ...............................................342
Внутренние директивы..............................................................................343
Нежелательные директивы........................................................................343
Приложение Е. Флаги безопасности компилятора TSC ................................344
Приложение Ж. TSX ....................................................................................346
Об авторе .....................................................................................................349
Об обложке .............................................................................................. 350