
WEB-015 Язык программирования TypeScript
Описание курса
Изучите возможности TypeScript, включая типизацию, интерфейсы, декораторы и generic-классы. Вы научитесь создавать надежные и масштабируемые приложения, избегая типичных ошибок JavaScript. TypeScript — это строго типизированный язык программирования, который был создан на основе JavaScript и включает в себя систему типизации, облегчающую валидацию приложений. Он выбран в качестве основного языка для фреймворка Angular и в настоящее время широко используется для разработки на React и создания корпоративных клиентских приложений. Использование TypeScript позволяет вам применять синтаксис, более близкий к таким языкам, как Java или C#, что приводит к написанию аккуратного, удобного и легко поддерживаемого кода.
- История и основы языка TypeScript.
- Базовые типы в TypeScript.
- Возможности ES2015+, поддерживаемые в TS.
- Модули ES2015, импорт и экспорт.
- Приведение типов.
- Практика: настройка окружения, установка и настройка Webpack, подключение компилятора TypeScript, сборка bundle.js и его подключение к html-файлу.
- Функциональные типы.
- Типы-литералы.
- Union-типы.
- Работа с null и undefined, работа с strictNullChecks.
- Интерфейсы и структурные типы.
- Опциональные свойства в интерфейсах.
- Индексируемые типы.
- Классы и имплементация интерфейсов.
- Расширение интерфейсов.
- Приведение типов.
- Функциональные типы с помощью интерфейсов.
- Гибридные интерфейсы.
- Перегрузка функций (function overloading).
- Практика: написание объектно-ориентированного приложения, использование типизации, классов, интерфейсов, инкапсуляции, полиморфизма.
- Декларации (type declaration).
- Практика: подключение JS-кода.
- Практика: подключение внешних JS-библиотек.
- Практика: подключение и типизация собственных JS-библиотек.
- Приватные, защищенные и публичные поля.
- Статические поля классов.
- Статические свойства.
- Создание интерфейсов на основе классов.
- Модификатор readonly.
- Классы-выражения (class expressions).
- Абстрактные классы.
- Выведение типов.
- Контекстуальный тип (contextual type).
- Совместимость типов.
- Объединение и дополнение интерфейсов (interface merge).
- Типы пересечения (intersection types).
- Локальное определение типов.
- Строгая проверка свойств объектов (strict literal assignment checking).
- Строгие типы-литералы и их объединение.
- Дискриминаторы.
- Полиморфный тип this.
- Защитники типов (type guards).
- Использование typeof для type guards.
- Сужение типов (narrowing) с помощью type guards.
- Сужение типов с помощью instanceof.
- Обнуляемые типы.
- Декларативное программирование с помощью декораторов.
- Изменение определений свойств с помощью декораторов.
- Расширение классов.
- Мета-программирование с помощью декораторов.
- Ограничение доступа к функциям с помощью декораторов.
- Использование оберток для изменения поведения функций.
- Декораторы с параметрами.
- Декораторы для методов.
- Практика: реализация проверки изменения значений поля.
- Практика: реализация и настройка логгирования с помощью декораторов.
- Для чего нужны generic-типы.
- Работа с generic-массивами.
- Использование ограничений (constraints) с generic-типами.
- Generic-классы.
- Generic-интерфейсы.
- Реализация generic-классов с приведением типов к any.
- Реализация generic-классов с перегруженными методами.