TypeScript — «надстройка» над Яваскриптом, с главной фишкой в виде статической типизации. В Яваскрипте разные типы данных могут быть преобразованы друг в друга, а в Тайпскрипте типы фиксируются заранее и не меняются.
Тайпскрипт — специфичный инструмент, который на волне хайпа стали считать жизненно необходимым. В бюро его не используют.
Беда в том, что сегодня Тайпскриптом пытаются решить проблемы, которые надо решать автотестами, повышением уровня и культуры разработки в целом. В итоге Тайпскрипт не решает эти проблемы, зато добавляет новые, попутно удваивая объём кода. Типизация — дорогое лекарство, но не панацея.
Ещё Тайпскрипт не страхует от взрывов в рантайме, сетевых проблем, старых браузеров и, конечно, никак не помогает формулировать, понимать и правильно решать задачи :‑)
Тайпскрипт усыпляет бдительность, но не спасает от ошибок в логике и архитектуре — главных болячек программирования. Эти болячки лечатся качественным кодом и тестами. А если говнокод присыпать сахаром типизации, он останется говнокодом, только уже замаскированным и более сложным.
Ещё Тайпскрипт не страхует от взрывов в рантайме, сетевых проблем, старых браузеров и, конечно, никак не помогает формулировать, понимать и правильно решать задачи :‑)
Тайпскрипт + плохой код = очень плохой код
Тайпскрипт чудовищно увеличивает количество шума. Половина кода становится служебным обвесом, обслуживание которого, хоть и по чуть‑чуть, но забирает ресурсы у основных задач.
Тайпскрипт + любой код = гораздо больше кода
Ещё проблема: разработчики‑новички часто не понимают смысл типизации и повторяют код как заклинание, застревая и городя костыли в любой непонятной ситуации. Без повышенного внимания опытных разработчиков, это станет фатальным для кодовой базы: неправильная типизация убьёт всю пользу Тайпскрипта, оставив команду с кучей бесполезного или даже вредного, путающего кода.
Тайпскрипт + низкий уровень команды = бесполезный код ради кода
При прочих равных, Тайпскрипт проигрывает большинству средств повышения уровня разработки. Если вместо Тайпскрипта потратить ресурсы на тесты или просто автоматизацию рутины разработчиков, польза для проекта будет гораздо ощутимее.
И вроде из всего этого следует, что Тайпскрипт — инструмент для команды крутанов, где уже внедрены все лучшие практики. Вот только сколько я знал таких крутанов — они себя и без типов прекрасно чувствуют :‑)
Но я уверен, что не всё вижу и понимаю. Поэтому приглашаю уважаемых советчиков в коменты. Расскажите, когда и в чём вы видите измеримую пользу Тайпскрипта? Поделитесь историями, как он помог бизнесу заработать больше денег или спас приложение в критический момент? Или наоборот — поделитесь своими аргументами против.
P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.