Logout succeed
Logout succeed. See you again!

Профессиональный TypeScript. Разработка масштабируемых JavaScript приложений PDF
Preview Профессиональный TypeScript. Разработка масштабируемых JavaScript приложений
Профессиональный TypeScript Разработка масштабируемых JavaScript-приложений Борис Черный Boris Cherny BBeeiijjiinngg BBoossttoonn FFaarrnnhhaamm SSeebbaassttooppooll TTookkyyoo 2021 Профессиональный TypeScript Разработка масштабируемых JavaScript-приложений Борис Черный Boris Cherny BBeeiijjiinngg BBoossttoonn FFaarrnnhhaamm SSeebbaassttooppooll TTookkyyoo 2021 ББК 32.988.02-018 УДК 004.738.5 Ч-49 Борис Черный Ч-49 Профессиональный TypeScript. Разработка масштабируемых JavaScript- приложений. — СПб.: Питер, 2021. — 352 с.: ил. — (Серия «Бестселлеры O’Reilly»). ISBN 978-5-4461-1651-5 Любой программист, работающий с языком с динамической типизацией, подтвердит, что задача масштабирования кода невероятно сложна и требует большой команды инженеров. Вот почему Facebook, Google и Microsoft придумали статическую типизацию для динамически типизированного кода. Работая с любым языком программирования, мы отслеживаем исключения и вычитываем код строку за строкой в поиске неисправности и способа ее устранения. TypeScript позволяет автоматизировать эту неприятную часть процесса разработки. TypeScript, в отличие от множества других типизированных языков, ориентирован на прикладные задачи. Он вводит новые концепции, позволяющие выражать идеи более кратко и точно, и легко создавать масштабируемые и безопасные современные приложения. Борис Черный помогает разобраться со всеми нюансами и возможностями TypeScript, учит устранять ошибки и масштабировать код. 16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.) ББК 32.988.02-018 УДК 004.738.5 Права на издание получены по соглашению с O’Reilly. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издатель- ство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответ- ственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете най- ти в этой книге. На момент подготовки книги к изданию все ссылки на интернет-ресурсы были действу- ющими. ISBN 978-1492037651 англ. Authorized Russian translation of the English edition of Programming TypeScript ISBN 9781492037651 © 2019 Boris Cherny. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. ISBN 978-5-4461-1651-5 © Перевод на русский язык ООО Издательство «Питер», 2021 © Издание на русском языке, оформление ООО Издательство «Питер», 2021 © Серия «Бестселлеры O’Reilly», 2021 Краткое содержание Отзывы ............................................................................................................................................10 Пролог ..............................................................................................................................................12 Глава 1. Вступление ....................................................................................................................18 Глава 2. TypeScript с высоты птичьего полета ................................................................21 Глава 3. Подробно о типах ......................................................................................................33 Глава 4. Функции .........................................................................................................................67 Глава 5. Классы и интерфейсы ............................................................................................111 Глава 6. Продвинутые типы .................................................................................................145 Глава 7. Обработка ошибок .................................................................................................198 Глава 8. Асинхронное программирование, конкурентность и параллельная обработка ...................................................................................................215 Глава 9. Фронтенд- и бэкенд-фреймворки ...................................................................247 Глава 10. Пространства имен и модули .........................................................................265 Глава 11. Взаимодействие с JavaScript ...........................................................................283 Глава 12. Создание и запуск TypeScript ..........................................................................306 Глава 13. Итоги ..........................................................................................................................327 Приложение A. Операторы типов ...................................................................................329 Приложение Б. Утилиты типов ..........................................................................................330 Приложение В. Область действия деклараций .........................................................331 Приложение Г. Правила написания файлов деклараций для сторонних модулей JavaScript ....................................................................................333 Приложение Д. Директивы с тремя слешами ............................................................342 Приложение Е. Флаги безопасности компилятора TSC ........................................344 Приложение Ж. TSX ................................................................................................................346 Об авторе .....................................................................................................................................349 Об обложке ......................................................................................................350 Оглавление Отзывы ......................................................................................................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 Оглавление 7 Глава 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 8 Оглавление Тип 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 Оглавление 9 Использование стороннего кода 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 Отзывы Отличная книга для углубленного изучения TypeScript. Она демонстрирует все преимущества использования системы типов и помогает обрести уверенность при работе с JavaScript. Минко Гечев, инженер команды Angular в Google Книга «Профессиональный TypeScript. Разработка мас- штабируемых JavaScript-приложений» помогла мне быстро освоить инструменты и внутреннее устройство этого языка. Она дала ответы на все мои вопросы с помощью реальных примеров. Глава «Продвинутые типы» сломала терминологи- ческие барьеры и показала, как TypeScript позволяет создать безопасный и удобный код. Шон Гров, сооснователь OneGraph Борис создал обширное руководство по TypeScript. Прочтите его вдоль и поперек. А затем еще разочек. Блейк Эмбри, инженер в Opendoor, автор TypeScript Node and Typings («Типизации и Node в TypeScript»)