WEB-015 Язык программирования TypeScript
Описание курса
TypeScript – это строго типизированный язык программирования, созданный на основе JavaScript. Он включает в себя систему типизации, облегчающую валидацию JavaScript приложений. TypeScript выбран в качестве основного языка для фреймворка Angular и в настоящее время широко используется для React-разработки и создания клиентских приложений корпоративного уровня.
- История и основы языка 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
- Сужение типов c помощью instanceof
- Обнуляемые типы
- Декларативное программирование с помощью декораторов
- Изменение определений свойств с помощью декораторов
- Расширение классов
- Мета-программирование с помощью декораторов
- Ограничение доступа к функциям с помощью декораторов
- Использование оберток для изменения поведения функций
- Декораторы с параметрами
- Декораторы для методов
Практика: реализация проверки изменения значений поля
Практика: реализация и настройка логгирования с помощью декораторов
- Для чего нужны generic-типы
- Работа с generic-массивами
- Использование ограничений (constraints) с generic-типами
- Generic-классы
- Generic-интерфейсы
- Реализация generic-классов с приведением типов к any
- Реализация generic-классов с перегруженными методами