TypeScript
Что это такое
TypeScript — это JavaScript со статическим слоем типов поверх него. Вы описываете формы, которые функция принимает и возвращает, а компилятор проверяет эти утверждения до запуска кода; на этапе сборки типы стираются, так что браузер по-прежнему получает обычный JavaScript, во время выполнения ничего не проверяется и в бандл ничего не добавляется.
Почему это важно
Дефекты формы составляют большинство дефектов JavaScript: свойство, которого иногда нет; значение, которое здесь число, а там строка; аргумент, переданный не в том порядке, — и всё это семейство проверка типов находит раньше браузера, в редакторе, пока вы печатаете, а не в продакшене. Она же делает рефакторинг безопасным в масштабе, недоступном JavaScript: переименуйте поле, и компилятор перечислит каждое место, которое нужно изменить. Цена реальна: типы приходится поддерживать, а плохо типизированная кодовая база хуже нетипизированной, поэтому дисциплина заключена в аннотациях, а не в синтаксисе.
Что в этом треке
- Система типов (02-frontend/19-typescript/01-the-type-system) — структурная типизация, вывод типов и аннотирование только того, что действительно необходимо.
- Сужение типов и объединения (02-frontend/19-typescript/02-narrowing-and-unions) — моделирование состояний так, чтобы невозможные нельзя было выразить.
- Обобщения (02-frontend/19-typescript/03-generics) — код, сохраняющий связь между типами входа и выхода функции.
- Конфигурация и миграция (02-frontend/19-typescript/04-configuration-and-migration) — параметры компилятора и перевод проекта на JavaScript без остановки работы.
Предварительные требования
- JavaScript (02-frontend/06-javascript)
Что читать дальше
- Webpack (02-frontend/24-webpack) — старый сборщик, который компилирует TypeScript через загрузчик.
- Vite (02-frontend/09-vite) — современная альтернатива, которая работает с TypeScript без дополнительной настройки.
- Чистый код (01-cs-fundamentals/08-clean-code) — типы лишь один из способов заставить сигнатуру говорить то, что она означает.