loading

Logout succeed

Logout succeed. See you again!

ebook img

Профессиональный TypeScript. Разработка масштабируемых JavaScript приложений PDF

pages352 Pages
release year2021
file size5.419 MB
languageRussian

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»)

See more

The list of books you might like