Изучаем TypeScript 3
Покупка
Новинка
Тематика:
Программирование на Java
Издательство:
ДМК Пресс
Автор:
Розенталс Натан
Год издания: 2019
Кол-во страниц: 625
Возрастное ограничение: 12+
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное профессиональное образование
ISBN: 978-5-97060-757-2
Артикул: 882740.01.99
TypeScript — это и язык, и набор инструментов для генерации кода JavaScript. Язык TypeScript и его компилятор завоевали прочные позиции в сообществе разработчиков на JavaScript и продолжают набирать силу, имея богатый инструментарий разработки. Многие масштабные проекты на JavaScript, в том числе проекты Adobe, Mozilla и Asana, приняли решение перевести свою кодовую базу с JavaScript на TypeScript.
Эта книга представляет собой руководство по TypeScript, которое начинается с базовых понятий, а затем представляет более продвинутые возможности языка. Подробно рассказано об использовании TypeScript со множеством современных фреймворков, применяются методы разработки через тестирование, дано много стандартных шаблонов проектирования. Итогом изучения будет полностью готовое к использованию приложение на TypeScript.
Издание будет полезно всем разработчикам приложений.
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Натан Розенталс Изучаем TypeScript 3 Создавайте промышленные веб-приложения корпоративного класса с использованием TypeScript 3 и современных фреймворков
Mastering TypeScript 3 Build enterprise-ready, industrial-strength web applications using TypeScript 3 and modern frameworks Nathan Rozentals Third Edition BIRMINGHAM • MUMBAI
Изучаем TypeScript 3 Создавайте промышленные веб-приложения корпоративного класса с использованием TypeScript 3 и современных фреймворков Натан Розенталс Москва, 2019
УДК 004.43 ББК 32.973.3 Р64 Р64 Натан Розенталс Изучаем TypeScript 3. – М.: ДМК Пресс, 2019. – 624 с. ISBN 978-5-97060-757-2 TypeScript – это и язык, и набор инструментов для генерации кода JavaScript. Язык TypeScript и его компилятор завоевали прочные позиции в сообществе разработчиков на JavaScript и продолжают набирать силу, имея богатый инструментарий разработки. Многие масштабные проекты на JavaScript, в том числе проекты Adobe, Mozilla и Asana, приняли решение перевести свою кодовую базу с JavaScript на TypeScript. Эта книга представляет собой руководство по TypeScript, которое начинается с базовых понятий, а затем представляет более продвинутые возможности языка. Подробно рассказано об использовании TypeScript со множеством современных фреймворков, применяются методы разработки через тестирование, дано много стандартных шаблонов проектирования. Итогом изучения будет полностью готовое к использованию приложение на TypeScript. Издание будет полезно всем разработчикам приложений. УДК 004.43 ББК 32.973.3 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведе ний. В связи с этимиздательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-5-97060-757-2 (рус.) Copyright © 2019 Packt. All rights reserved. ISBN 978-1-78953-670-6 (анг.) © Оформление, издание, ДМК Пресс, 2019
Об авторе Натан Розенталс (Nathan Rozentals) занимается созданием коммерческого программного обеспечения на протяжении более 30 лет. Как и многие программисты того времени, он помог спасти мир в 2000 году. Работая, он пытался освоить множество объектно-ориентированных языков, начиная с простого старого C, переходя на C++, Java, а затем C#. В TypeScript он нашел язык, в который можно привнести все шаблоны объектно-ориентированного проектирования и принципы, которые он изучил за годы работы с JavaScript. Когда он не программирует, он думает о программировании. Чтобы перестать думать о нем, он занимается виндсерфингом, играет в футбол или просто смотрит, как в футбол играют профессионалы. Они делают это намного лучше, чем он. Я хотел бы поблагодарить своего партнера Кэти за то, что была рядом со мной, и в горе, и в радости, что научила меня, что значит любовь. Эйрон и Дейна, я думаю о вас, ребята, каждый день, и так горжусь каждым из вас. Мэтт, просто продолжай быть собой. Всем в Vix спасибо за то, что сделали работу такой приятной. То, что мы делаем, нелегко, но это стоит того. Я никогда не встречал такого количества талантливых людей, сосредоточенных в одном месте. О рецензентах Гаурав Арораа (Gaurav Aroraa) имеет степень магистра компьютерных наук и статус MVP, является пожизненным членом Компьютерного общества Индии (CSI), консультативным членом IndiaMentor, имеет сертификаты скрам-тренера, XEN-библиотеки – фонда инфраструктуры информационных технологий (ITIL-F) и сертификаты PRINCE-F и PRINCE-P, заверенные APMG Int. Гаурав – разработчик приложений с открытым исходным кодом и основатель Ovatic Systems. Недавно Гаурав был удостоен награды Иконы года – за выдающиеся достижения в области стартапов в сфере технологии наставничества за 2018–2019 гг. от Radio City – по инициативе Jagran за выдающуюся работу в течение 20-летней карьеры в отрасли в области технологического наставничества. Вы можете написать Гаураву в Twitter (@g_arora). Ручитха Сахабанду (Ruchitha Sahabandu) – инженер-программист, технический инструктор и наставник с более чем 14-летним опытом проектирования и разработки бизнес-приложений и встроенных систем, основанных на платформах JavaScript, JEE, Oracle и технологиях C/C++. Он работал над многими сложными проектами, функционирующими на Agile и TDD, методологиями SDLC в таких областях, как автоматизированная система сбора платы за проезд, планирование ресурсов, управление цепями поставок и автоматизация производственных площадей для клиентов по всему миру.
В 2006 году он окончил Университет Коломбо, Шри-Ланка, по специальности «Компьютерные науки». В настоящее время он живет в Перте, Австралия, и трудится вместе с Натаном Розенталсом над разработкой продукта AFC следующего поколения.
Предисловие 19 Глава 1 Инструменты TypeScript и параметры фреймворков 25 Что такое TypeScript? 27 JavaScript и ECMAScript 28 Преимущества TypeScript 29 Компиляция 29 Сильная типизация 30 Синтаксический сахар 31 Определение типов для популярных библиотек JavaScript 32 DefinitelyTyped 33 Инкапсуляция 33 Классы TypeScript генерируют замыкания 35 Методы доступа public и private 35 Интегрированные среды разработки TypeScript 37 Компиляция на основе Node 38 Создание файла tsconfig.json 39 Локализованные сообщения 40 Visual Studio Code 41 Установка VSCode 41 Изучение VSCode 41 Создание файла tasks.json 41 Сборка проекта 44 Создание файла launch.json 44 Установка точек останова 44 Отладка веб-страниц 45 Microsoft Visual Studio 48 Создание проекта в Visual Studio 48 Настройки проекта по умолчанию 50 Отладка в Visual Studio 53 WebStorm 54 Создание проекта в WebStorm 55 Файлы по умолчанию 55 Создание простого HTML-приложения 56 Запуск веб-страницы в Chrome 57 Другие редакторы 59 Использование --watch и Grunt 59 Резюме 62 Глава 2 Типы, переменные и методы функций 63 Базовые типы 64 Типизация в JavaScript 64 Типизация в TypeScript 65 Синтаксис типов 66 Типизация с поддержкой вывода типов 69 Утиная типизация 70
Шаблонные строки 71 Массивы 72 for...in и for...of 73 Тип any 74 Явное приведение типов 75 Перечисления 76 Const enum 77 Строковые перечисления 78 Реализация перечислений 78 Const 80 Ключевое слово let 80 Определенное присваивание 83 Типы свойств с точечной нотацией 84 Числовые разделители 85 Функции 85 Типы возвращаемого значения 85 Анонимные функции 86 Необязательные параметры 87 Параметры по умолчанию 88 Оставшиеся параметры 89 Функции обратного вызова 91 Сигнатуры функций 93 Переопределение функций 95 Try…catch 96 Расширенные типы 97 Объединенные типы 98 Охранники типов 98 Псевдонимы типов 100 Null и undefined 101 Нулевые операнды 103 Never 104 Unknown 105 Object rest and spread 106 Приоритет распространения 107 Использование операторов остатка и распространения с массивами 108 Кортежи 109 Деконструкция кортежей 110 Необязательные элементы кортежа 111 Кортежи и синтаксис оператора остатка 111 Bigint 112 Резюме 116 Глава 3 Интерфейсы, классы и наследование 117 Интерфейсы 118 Необязательные свойства 119 Компиляция интерфейса 120
Слабые типы 120 Вывод типов с помощью оператора in 121 Классы 122 Свойства класса 124 Реализация интерфейсов 124 Конструкторы классов 126 Функции класса 127 Определения функций интерфейса 130 Модификаторы класса 131 Модификаторы доступа конструктора 132 Свойство readonly 134 Методы доступа к свойствам класса 134 Статические функции 136 Статические свойства 136 Пространства имен 137 Наследование 138 Наследование интерфейса 139 Наследование классов 139 Ключевое слово super 140 Переопределение функции 141 Члены класса protected 142 Абстрактные классы 143 Замыкания JavaScript 146 instanceof 148 Использование интерфейсов, классов и наследования – шаблон проектирования Factory 150 Бизнес-требования 150 Что делает шаблон проектирования Factory 150 Интерфейс IPerson 151 Класс Person 151 Классы специалистов 152 Класс Factory 153 Использование класса Factory 154 Резюме 155 Глава 4 Декораторы, обобщения и асинхронные функции 156 Декораторы 157 Синтаксис декораторов 158 Несколько декораторов 159 Фабрика декораторов 159 Параметры декораторов класса 160 Декораторы свойств 162 Декораторы статических свойств 163 Декораторы методов 164 Использование декораторов методов 165 Декораторы параметров 167
Метаданные декораторов 168 Использование метаданных декораторов 170 Обобщения 171 Синтаксис обобщений 172 Создание экземпляра обобщенного класса 172 Использование типа T 174 Ограничение типа Т 176 Обобщенные интерфейсы 178 Создание новых объектов в обобщениях 179 Расширенные типы с обобщениями 181 Условные типы 182 Распределенные условные типы 185 Выведение условных типов 187 keyof 189 keyof с числом 190 Отображаемые типы 192 Partial, Readonly, Record и Pick 193 Асинхронное программирование 195 Промисы 195 Синтаксис промисов 197 Использование промисов 199 Механизм обратного вызова в сравнении с синтаксисом промиса 200 Возвращение значений из промисов 201 async и await 203 awaitError 204 Синтаксис промиса в сравнении с синтаксисом async await 205 awaitMessage 206 Резюме 207 Глава 5 Файлы объявлений и строгие опции компилятора 208 Глобальные переменные 209 Использование блоков кода JavaScript в HTML 211 Структурированные данные 212 Пишем свой файл объявлений 214 Ключевое слово module 216 Интерфейсы 218 Объединенные типы 220 Слияние модулей 221 Справочник синтаксиса объявлений 222 Переопределение функций 222 Синтаксис JavaScript 222 Синтаксис файла объявлений 223 Вложенные пространства имен 223 Синтаксис JavaScript 223 Синтаксис файла объявлений 223