Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
«TypeScript быстро» научит вас секретам продуктивной разработки веб- или самостоятельных приложений. Она написана практиками для практиков. В книге разбираются актуальные для каждого программиста задачи, объясняется синтаксис языка и описывается разработка нескольких приложений, в том числе нетривиальных — так вы сможете понять, как использовать TypeScript с популярными библиотеками и фреймворками. Вы разберетесь с превосходным инструментарием TypeScript и узнаете, как объединить в одном проекте TypeScript и JavaScript. Среди продвинутых тем, рассмотренных авторами, – декораторы, асинхронная обработка и динамические импорты. Прочитав эту книгу, вы поймете, что именно делает TypeScript особенным.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 532
Veröffentlichungsjahr: 2024
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Переводчики Д. Акуратер, Д. Акуратер
Яков Файн, Антон Моисеев
TypeScript быстро . — СПб.: Питер, 2024.
ISBN 978-5-4461-1725-3
© ООО Издательство "Питер", 2024
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Яков благодарит своего лучшего друга Сэмми за теплую и уютную атмосферу в процессе работы над книгой. К сожалению, Сэмми не может говорить, но, как и любая другая собака, любит всех членов своей семьи больше, чем они сами себя.
Антон благодарит авторов и участников открытых проектов, которые упомянуты в этой книге. Ее создание оказалось бы невозможным, если бы эти люди не посвящали регулярно множество часов своим проектам, а также постоянной работе по развитию и поддержанию сообществ. Антон также благодарен семье за терпение, которое они проявили на время его работы над книгой.
Отдельную благодарность выражаем всем рецензентам книги, предоставившим ценную обратную связь: Ахмаду Субахи (Ahmad Subahi), Александросу Далласу (Alexandros Dallas), Брайану Дэйли (Brian Daley), Кэмерону Пресли (Cameron Presley), Кэмерону Синге (Cameron Singe), Денизу Вехби (Deniz Vehbi), Флорис Бушо (Floris Bouchot), Джорджу Онофрею (George Onofrei), Джорджу Томасу (George Thomas), Джеральду Джеймсу Стралко (Gerald James Stralko), Гаю Лэнгстону (Guy Langston), Джеффу Смиту (Jeff Smith), Джастину Кану (Justin Kahn), Кенту Р. Спиллнеру (Kent R. Spillner), Кевину Орру (Kevin Orr), Лукасу Пардью (Lucas Pardue), Марко Летичу (Marco Letic), Маттео Баттиста (Matteo Battista), Полу Брауну (Paul Brown), Полине Кесельман (Polina Keselman), Ричарду Таттлу (Richard Tuttle), Шридхари Шридхарану (Sridhari Sridharan), Тамаре Форза (Tamara Forza) и Томасу Оверби Хансену (Thomas Overby Hansen).
Эта книга написана для инженеров ПО, которые хотят повысить продуктивность разработки веб- или самостоятельных приложений. Мы, ее авторы, являемся практиками и книгу писали для таких же практиков. В ней не только объясняется синтаксис языка на простых примерах, но также описывается разработка нескольких приложений — так вы можете понять, как использовать TypeScript с популярными библиотеками и фреймворками.
В процессе создания этой книги мы проводили мастер-классы, используя приведенные в ней образцы кода. Это позволило получить раннюю обратную связь по содержанию книги. Надеемся, что вы получите удовольствие от процесса изучения TypeScript.
Этот материал, в свою очередь, предполагает, что у читателей уже есть практические познания в HTML, CSS и JavaScript, использующем последние нововведения из спецификации ECMAScript. Если вам знаком только синтаксис ECMAScript 5, рекомендуем просмотреть приложение, чтобы лучше понимать примеры кода, используемые в книге. Приложение выполняет роль введения в современный JavaScript.
Эта книга состоит из двух частей. В части 1 мы рассматриваем различные элементы синтаксиса TypeScript, приводя для наглядности небольшие образцы кода. В части 2 мы используем TypeScript в нескольких версиях блокчейн-приложения. Если ваша цель — как можно быстрее освоить синтаксис TypeScript и сопутствующие инструменты, тогда части 1 будет достаточно.
Глава 1 поможет начать разработку с помощью TypeScript. Вы скомпилируете и запустите самые простые программы, чтобы понять суть рабочего процесса — от написания программ в TypeScript и до их компиляции в выполняемый JavaScript. Мы также рассмотрим преимущества программирования в TypeScript в сравнении с JavaScript и представим вам редактор Visual Studio Code.
Глава 2 поясняет, как объявлять переменные и функции с типами. Вы научитесь объявлять псевдонимы типов с помощью ключевого слова type, а также узнаете, как объявлять пользовательские типы с классами и интерфейсами. Это поможет понять разницу между номинальными и структурными системами типов.
Глава 3 рассказывает, как работает наследование классов и когда использовать абстрактные классы. Вы увидите, как с помощью интерфейсов в TypeScript можно принудить класс иметь методы с известными сигнатурами, не беспокоясь при этом о деталях реализации. Вы также узнаете, что означает «программирование через интерфейсы».
Глава 4 посвящена перечислениям и обобщенным типам. Она рассматривает преимущества использования перечислений, синтаксис для численных и строчных перечислений, назначение обобщенных типов, а также показывает, как прописывать классы, интерфейсы и поддерживающие их функции.
Глава 5 описывает декораторы, а также отображенные и условные типы. Все это относится к продвинутым типам TypeScript, поэтому для понимания этой главы следует ознакомиться с синтаксисом обобщенных типов.
Глава 6 посвящена сопутствующим инструментам. В ней мы рассказываем об использовании карт кода и TSLinter (несмотря на то, что TSLinter считается устаревшим, многие разработчики по-прежнему им пользуются). Затем мы покажем вам, как компилировать и обвязывать (bundle) приложения TypeScript с помощью Webpack. Вы также узнаете, как и зачем компилировать TypeScript с помощью Babel.
Глава 7 научит вас использовать библиотеки JavaScript в вашем TypeScript-приложении. Мы начнем с объяснения роли файлов определений типов, а затем представим небольшое приложение, использующее библиотеку JavaScript в приложении TypeScript. В завершение мы пройдем через весь процесс постепенного перевода имеющегося проекта JavaScript в TypeScript.
В части 2 мы используем TypeScript в блокчейн-приложении. Здесь вы можете подумать: «Ни одна из компаний, где я работал, не использует блокчейн, так зачем мне его изучать, если моя цель — освоение TypeScript?» Мы не хотели, чтобы наш образец приложения был очередным стандартным примером, поэтому озадачились поиском горячей технологии, в которой можно было бы применить различные элементы TypeScript, а также техники, представленные в части 1. Знакомство с тем, как TypeScript может быть использован в нетривиальном приложении, придаст содержанию больше практичности, даже если вы не собираетесь использовать блокчейн в ближайшем будущем.
В этой части книги вы разработаете несколько блокчейн-приложений: самостоятельное приложение, браузерное приложение, а также приложения на Angular, React.js и Vue.js. При этом можете выбрать к прочтению только интересующие вас главы, но обязательно прочитайте главы 8 и 10, где объясняются основные принципы.
Глава 8 представляет принципы блокчейн-приложений. В ней вы узнаете, для чего нужно хеширование функций, что означает блокчейн-майнинг и почему для добавления нового блока в блокчейн требуется подтверждение работы. После знакомства с основами блокчейна мы представим проект и поясним код, лежащий в основе простого блокчейн-приложения. Большинство глав в части 2 имеют рабочие проекты с подробным пояснением того, как они были написаны и как запускаются.
В главе 9 описывается создание веб-клиента для блокчейна. Это приложение не будет использовать никакие фреймворки; в нем мы задействуем только HTML, CSS и TypeScript. Мы также создадим небольшую библиотеку для генерации хеша, которую можно будет использовать как в веб-, так и в самостоятельных клиентах. Помимо этого, вы увидите, как производить отладку кода TypeScript в своем браузере.
Глава 10 рассматривает код блокчейн-приложения, использующего сервер обмена сообщениями для связи между членами блокчейна. Мы создадим Node.js и WebSocket сервер в TypeScript и покажем вам, как для достижения консенсуса блокчейн использует правило длиннейшей цепочки. Вы найдете практические примеры использования TypeScript интерфейсов, абстрактных классов, квалификаторов доступа, перечислений и обобщенных типов.
В главе 11 дается краткий обзор разработки веб-приложений в Angular при помощи TypeScript, а глава 12 рассматривает код блокчейн-веб-клиента, разработанного с помощью этого фреймворка.
Глава 13 дает краткое введение в разработку веб-приложений в React.js с помощью TypeScript, а глава 14 рассматривает код блокчейн-веб-клиента, разработанного с React.
Глава 15 аналогичным образом представляет разработку веб-приложений в Vue.js с помощью TypeScript, а глава 16 рассматривает блокчейн-веб-клиент, разработанный с использованием Vue.
Эта книга содержит много примеров исходного кода как в нумерованных листингах, так и в основном тексте. В обоих случаях исходный код имеет формат моноширинного шрифта для выделения на фоне остального текста. Иногда код выделен жирным, обозначая те его части, которые изменились с момента их предыдущего появления в главе. Например, когда в существующую строчку кода добавляется новая функциональность.
Во многих случаях исходный код был переформатирован; мы добавили разрывы между строк и переработали отступы для соответствия ширине страницы. Но в каких-то случаях этого было недостаточно, поэтому некоторые листинги включают маркеры переноса строки (Ä). Помимо этого, комментарии исходного кода были удалены из листингов, если его описание уже содержалось в самом тексте. Аннотации кода сопровождают многие листинги, подчеркивая важные принципы.
Часть 1 посвящена синтаксису языка, и большинство приведенных в ней образцов кода опубликованы онлайн в «песочнице» TypeScript — интерактивном инструменте, быстро проверяющем синтаксис фрагментов TypeScript кода и компилирующем его в JavaScript. Ссылки на такие фрагменты кода предоставлены в книге по мере необходимости.
Вторая часть состоит из нескольких проектов, где TypeScript используется для разработки приложений с помощью популярных библиотек и фреймворков (вроде Angular, React.js и Vue.js). Исходный код этих приложений размещен на GitHub по адресу https://github.com/yfain/getts.
Мы тщательно протестировали каждое приложение, описанное в книге, но нарушающие их работу изменения могут быть вызваны более новыми релизами TypeScript или библиотек. Если при попытке запустить один из проектов возникает ошибка, пожалуйста, создайте запрос в репозитории этой книги на GitHub.
Яков Файн является сооснователем двух IT-компаний: Farata Systems и SuranceBay. Он автор и соавтор таких книг, как Java Programming: 24-Hour Trainer, Angular Development with TypeScript1, Java Programming for Kids и др. Являясь чемпионом Java, провел множество классов и семинаров, посвященных веб- и Java-технологиям. Помимо этого, также был докладчиком на международных конференциях. Файн опубликовал более тысячи статей в своем блоге на yakovfain.com. В твиттере и инстаграме его можно найти по адресу @yfain. Он также публикует видео на YouTube.
Антон Моисеев является ведущим разработчиком в SuranceBay. Провел за разработкой корпоративных приложений более десяти лет, работая с Java и .NET. Имеет обширный опыт и фокусируется на развитии веб-технологий, реализующих лучшие методики слаженной работы фронтенда и бэкенда. Некоторое время проводил обучение по фреймворкам AngularJS и Angular. Периодически Антон делает посты в блоге antonmoissev.com. В твиттере вы можете найти его по адресу @antonmoiseev.
На обложке «TypeScript быстро» изображена «Буржуазная Флоренция». Эта иллюстрация позаимствована из коллекции костюмов различных стран, созданной Жаком Грассе де Сен-Совер (Jacques Grasset de Saint-Sauveur) (1757–1810) под названием «Costumes civils actuels de tuos les peoples connus», опубликованной во Франции в 1788 году. Каждая иллюстрация этой коллекции была нарисована и раскрашена от руки. Богатое разнообразие коллекции Грассе де Сен-Совер наглядно напоминает нам, насколько культурно разрознены были города и регионы всего мира еще 200 лет назад. Будучи изолированными друг от друга, люди говорили на различных диалектах и языках. На сельских же улицах было достаточно взглянуть на одеяние жителя, чтобы распознать, откуда он родом, кем работает и в каком жизненном положении находится.
Манера одеваться с тех пор сильно изменилась, и некогда богатое региональное разнообразие практически угасло. Сегодня стало сложно различить жителей разных континентов, не говоря уже о разных странах, регионах или городах. Можно предположить, что мы променяли культурное разнообразие на более разностороннюю личную жизнь, но при этом точно на более богатую и быстро меняющуюся жизнь мира технологий.
Во времена, когда стало тяжело отличить одну компьютерную книгу от другой, Manning выделяется изобретательностью и инициативой в компьютерном бизнесе, создавая обложки на основе богатого разнообразия жизни регионов двухвековой давности, которое было повторно явлено миру благодаря работе Грассе де Сен-Совер.
1Файн Я., Моисеев А. Angular и TypeScript. Сайтостроение для профессионалов. — СПб.: Питер, 2018. — 464 с.: ил.
Начнем часть 1 с объяснения преимуществ использования TypeScript в сравнении с JavaScript. После этого рассмотрим различные элементы синтаксиса TypeScript на примерах небольших фрагментов кода. Вы увидите, как использовать встроенные и объявлять пользовательские типы. Помимо этого, мы научимся применять классы, интерфейсы, а также обобщения, перечисления, декораторы, отображенные и условные типы. Вы познакомитесь с инструментами, которые используются разработчиками в TypeScript (например, компиляторы, линтеры, отладчики и бандлеры). В завершение мы покажем, как использовать в одном приложении код TypeScript совместно с JavaScript.
Для тех из вас, кто любит смотреть видео, Яков Файн опубликовал серию роликов на английском языке (см. http://mng.bz/m4M8), которые иллюстрируют содержимое части 1 этой книги. Если вы хотите как можно скорее освоить именно синтаксис TypeScript и его инструменты, часть 1 предоставит все, что для этого нужно.