«TypeScript быстро» научит вас секретам продуктивной разработки веб- или самостоятельных приложений. Она написана практиками для практиков.
В книге разбираются актуальные для каждого программиста задачи, объясняется синтаксис языка и описывается разработка нескольких приложений, в том числе нетривиальных — так вы сможете понять, как использовать TypeScript с популярными библиотеками и фреймворками. Вы разберетесь с превосходным инструментарием TypeScript и узнаете, как объединить в одном проекте TypeScript и JavaScript. Среди продвинутых тем, рассмотренных авторами, – декораторы, асинхронная обработка и динамические импорты. Прочитав эту книгу, вы поймете, что именно делает TypeScript особенным.
Author(s): Яков Файн, Антон Моисеев
Series: Для профессионалов
Edition: 1
Publisher: Питер
Year: 2021
Language: Russian
Commentary: Vector PDF
Pages: 540
City: СПб.
Tags: JavaScript; Blockchain; Web Applications; Node.js; Object-Oriented Programming; Decorators; Angular; TypeScript; Vue.js; Type-Driven Development; React.js
Введение
Благодарности
О книге
Для кого эта книга
Как организована книга
О коде
Об авторах
Об обложке
Часть 1Основы синтаксиса TypeScript
Глава 1. Знакомство с TypeScript
1.1. Зачем программировать в TypeScript
1.2. Типичные рабочие процессы TypeScript
1.3. Использование компилятора TypeScript
1.4. Знакомство с Visual Studio Code
Итоги
Глава 2. Базовые и пользовательские типы
2.1. Объявление переменных с типами
2.1.1. Базовые аннотации типов
2.1.2. Типы в объявлениях функций
2.1.3. Объединенный тип
2.2. Определение пользовательских типов
2.2.1. Использование type
2.2.2. Использование классов в качестве пользовательских типов
2.2.3. Интерфейсы в качестве пользовательских типов
2.2.4. Структурная система типов против номинальной
2.2.5. Пользовательские объединения типов
2.3. Типы any и unknown, а также пользовательские защиты типов
2.4. Мини-проект
Итоги
Глава 3. Объектно-ориентированное программирование с классами и интерфейсами
3.1. Работа с классами
3.1.1. Знакомство с наследованием классов
3.1.2. Модификаторы доступа public, private, protected
3.1.3. Статические переменные и пример Одиночки
3.1.4. Метод super() и ключевое слово super
3.1.5. Абстрактные классы
3.1.6. Перегрузка метода
3.2. Работа с интерфейсами
3.2.1. Обеспечение выполнения контракта
3.2.2. Расширение интерфейсов
3.2.3. Программирование через интерфейсы
Итоги
Глава 4. Перечисления и обобщенные типы
4.1. Использование enums
4.1.1. Численные enums
4.1.2. Строчные перечисления
4.1.3. Использование перечислений const
4.2. Использование обобщений
4.2.1. Разъяснение обобщений
4.2.2. Создание собственных обобщенных типов
4.2.3. Создание обобщенных функций
4.2.4. Обеспечение возвращаемого типа функции высшего порядка
Итоги
Глава 5. Декораторы и продвинутые типы
5.1. Декораторы
5.1.1. Создание декораторов классов
5.1.2. Создание декораторов методов
5.2. Отображенные типы
5.2.1. Отображенный тип Readonly
5.2.2. Объявление собственных отображенных типов
5.2.3. Другие встроенные отображенные типы
5.3. Условные типы
5.3.1. Ключевое слово infer
Итоги
Глава 6. Инструменты
6.1. Карты кода
6.2. Линтер TSLint
6.3. Связывание кода с помощью Webpack
6.3.1. Связывание JavaScript с помощью Webpack
6.3.2. Связывание TypeScript с помощью Webpack
6.4. Использование компилятора Babel
6.4.1. Использование Babel с JavaScript
6.4.2. Использование Babel с TypeScript
6.4.3. Использование Babel с TypeScript и Webpack
6.5. Инструменты для рассмотрения
6.5.1. Знакомство с Deno
6.5.2. Знакомство с ncc
Итоги
Глава 7. Использование TypeScript и JavaScript в одном проекте
7.1. Файлы определений типов
7.1.1. Знакомство
7.1.2. Файлы определений типов и IDE
7.1.3. Shim и определения типов
7.1.4. Создание собственных файлов определений типов
7.2. Пример TypeScript-приложения, использующего JavaScript-библиотеки
7.3. Введение TypeScript в JavaScript-проект
Итоги
Часть 2Использование TypeScript в блокчейн-приложении
Глава 8. Разработка собственного блокчейн-приложения
8.1. Блокчейн 101
8.1.1. Криптографические хеш-функции
8.1.2. Из чего состоит блок?
8.1.3. Что такое добыча блока?
8.1.4. Мини-проект с хешем и nonce
8.2. Ваш первый блокчейн
8.2.1. Структура проекта
8.2.2. Создание примитивного блокчейна
8.2.3. Создание блокчейна с доказательством проделанной работы
Итоги
Глава 9. Разработка узла блокчейна на основе браузера
9.1. Запуск блокчейн-веб-приложения
9.1.1. Структура проекта
9.1.2. Развертывание приложения с помощью npm-сценариев
9.1.3. Работа с блокчейн-веб-приложением
9.2. Веб-клиент
9.3. Добыча блоков
9.4. Использование crypto API для генерации хешей
9.5. Самостоятельный блокчейн-клиент
9.6. Отладка TypeScript в браузере
Итоги
Глава 10. Клиент-серверное взаимодействие посредством Node.js, TypeScript и WebSocket
10.1. Разрешение конфликтов с помощью правила длиннейшей цепочки
10.2. Добавление сервера в блокчейн
10.3. Структура проекта
10.4. Файлы конфигураций проекта
10.4.1. Настройка компиляции TypeScript
10.4.2. Что находится в package.json
10.4.3. Настройка nodemon
10.4.4. Выполнение блокчейн-приложения
10.5. Краткое знакомство с WebSockets
10.5.1. Сравнение протоколов HTTP и WebSocket
10.5.2. Передача данных от сервера Node к простому клиенту
10.6. Рассмотрение процессов уведомления
10.6.1. Рассмотрение кода сервера
10.6.2. Рассмотрение кода клиента
Итоги
Глава 11. Разработка приложений Angular с помощью TypeScript
11.1. Генерация и запуск нового приложения с помощью Angular CLI
11.2. Рассмотрение сгенерированного приложения
11.3. Сервисы Angular и внедрение зависимостей
11.4. Приложение с внедрением ProductService
11.5. Программирование через абстракции в TypeScript
11.6. Начало работы с HTTP-запросами
11.7. Начало работы с формами
11.8. Основы маршрутизации
Итоги
Глава 12. Разработка клиента блокчейна на Angular
12.1. Запуск блокчейн-приложения Angular
12.2. Обзор AppComponent
12.3. Рассмотрение TransactionFormComponent
12.4. Обзор BlockComponent
12.5. Обзор сервисов
Итоги
Глава 13. Разработка приложений React.js с помощью TypeScript
13.1. Разработка простейшей веб-страницы при помощи React
13.2. Генерация и запуск нового приложения с помощью Create React App
13.3. Управление состоянием компонента
13.3.1. Добавление состояния в компоненты, основанные на классе
13.3.2. Использование хуков для управления состоянием
13.4. Разработка метеоприложения
13.4.1. Добавление хука состояния в компонент App
13.4.2. Получение данных при помощи хука useEffect в компоненте App
13.4.3. Использование свойств
13.4.4. Как дочерний компонент может передавать данные родителю?
13.5. Что такое виртуальная DOM?
Итоги
Глава 14. Разработка блокчейн-клиента в React.js
14.1. Запуск клиента и сервера обмена сообщениями
14.2. Что изменилось в директории lib
14.3. Умный компонент App
14.3.1. Добавление транзакции
14.3.2. Генерация нового блока
14.3.3. Объяснение хуков useEffect()
14.3.4. Мемоизация с помощью хука useCallback()
14.4. Компонент представления TransactionForm
14.5. Компонент представления PendingTransactionsPanel
14.6. Компоненты представления BlocksPanel и BlockComponent
Итоги
Глава 15. Разработка приложений Vue.js с помощью TypeScript
15.1. Разработка простейшей веб-страницы с помощью Vue
15.2. Генерация и запуск приложения с помощью Vue CLI
15.3. Разработка одностраничных приложений с маршрутизацией
15.3.1. Генерация нового приложения с Vue Router
15.3.2. Отображение списка товаров в представлении Home
15.3.3. Передача данных с помощью Vue Router
Итоги
Глава 16. Разработка блокчейн-клиента на Vue.js
16.1. Запуск клиента и сервера обмена сообщениями
16.2. Компонент App
16.3. Компонент представления TransactionForm
16.4. Компонент представления PendingTransactionsPanel
16.5. Компоненты представления BlocksPanel и Block
Итоги
Эпилог
Приложение А
Современный JavaScript
А.1. Как запускать образцы кода
А.2. Ключевые слова let и const
А.2.1. Ключевое слово var и поднятие
А.2.2. let и const для работы в области блока
А.3. Шаблонные литералы
А.3.1. Размеченные шаблонные строки
А.4. Опциональные параметры и значения по умолчанию
А.5. Выражения стрелочных функций
А.6. Оператор остатка (rest)
А.7. Оператор распространения
А.8. Деструктуризация
А.8.1. Деструктуризация объектов
А.8.2. Деструктуризация массивов
А.9. Классы и наследование
А.9.1. Конструкторы
А.9.2. Ключевое слово super и функция super()
А.9.3. Статические члены класса
А.10. Асинхронная обработка
А.10.1. Ад обратных вызовов
А.10.2. Промисы
А.10.3. Разрешение нескольких промисов зараз
А.10.4. async-await
А.11. Модули
А.11.1. Импорты и экспорты
А.12. Транспиляторы