TypeScript

Что это такое

TypeScript — это JavaScript со статическим слоем типов поверх него. Вы описываете формы, которые функция принимает и возвращает, а компилятор проверяет эти утверждения до запуска кода; на этапе сборки типы стираются, так что браузер по-прежнему получает обычный JavaScript, во время выполнения ничего не проверяется и в бандл ничего не добавляется.

Почему это важно

Дефекты формы составляют большинство дефектов JavaScript: свойство, которого иногда нет; значение, которое здесь число, а там строка; аргумент, переданный не в том порядке, — и всё это семейство проверка типов находит раньше браузера, в редакторе, пока вы печатаете, а не в продакшене. Она же делает рефакторинг безопасным в масштабе, недоступном JavaScript: переименуйте поле, и компилятор перечислит каждое место, которое нужно изменить. Цена реальна: типы приходится поддерживать, а плохо типизированная кодовая база хуже нетипизированной, поэтому дисциплина заключена в аннотациях, а не в синтаксисе.

Что в этом треке

  1. Система типов (02-frontend/19-typescript/01-the-type-system) — структурная типизация, вывод типов и аннотирование только того, что действительно необходимо.
  2. Сужение типов и объединения (02-frontend/19-typescript/02-narrowing-and-unions) — моделирование состояний так, чтобы невозможные нельзя было выразить.
  3. Обобщения (02-frontend/19-typescript/03-generics) — код, сохраняющий связь между типами входа и выхода функции.
  4. Конфигурация и миграция (02-frontend/19-typescript/04-configuration-and-migration) — параметры компилятора и перевод проекта на JavaScript без остановки работы.

Предварительные требования

Что читать дальше

  • Webpack (02-frontend/24-webpack) — старый сборщик, который компилирует TypeScript через загрузчик.
  • Vite (02-frontend/09-vite) — современная альтернатива, которая работает с TypeScript без дополнительной настройки.
  • Чистый код (01-cs-fundamentals/08-clean-code) — типы лишь один из способов заставить сигнатуру говорить то, что она означает.