Какие проблемы решает TypeScript
JavaScript был задуман как узкоспециализированный язык программирования с ограниченными возможностями для внесения в страницы сайтов созданных на HTML и CSS некой динамики. На тот момент скрипты или программы, написанные на этом языке, были короткими и относительно простыми. Но время идет, скрипты становились все более сложными. Благодаря Node.js JavaScript и вовсе превратился в язык общего назначения.
Тот факт, что JavaScript, это единственный язык программирования, который фронт-энд веб разработчик может использовать для разработки клиентской части приложения или веб сайта сделало его очень популярным, а это означает, что скрипты написанные на нем стали очень сложными. С ростом сложности скриптов проявляются все недостатки JavaScript. Язык получает регулярные обновления, но они все равно не успевают за ростом требований приложений. И тут на помощь веб разработчикам приходит на помощь TypeScript.
Основная проблема JavaScript это сложность обнаружения ошибок, в основном, из-за нестрогой типизации. Эта проблема частично решается если использовать юнит тесты, например, Jasmine. Но все равно, программистам приходится тратить много часов на ручную проверку кода, чтобы убедиться, что скрипт работает правильно.
Архитектура языка породила системные проблемы, с которыми веб девелоперы должны иметь дело каждый день и тратить на них много времени. Попытка устранить эти архитектурные особенности и привело к возникновению TypeScript. Он, в первую очередь, добавляет поддержку типов, а современный редактор, который его поддерживает, может сделать эту проверку автоматической и сразу информировать программиста и возможных проблемах, например, если функция должна возвращать стоку, а по факту возвращает число. Таким редактором, например, может быть Visual Studio Code, разработанный компанией Microsoft, как и сам TypeScript.
Но почему автоматическая проверка типов имеет такое большое значение, спросит пытливый веб девелопер. Все дело в том, что огромное количество приложений написаны на JavaScript и многие из них состоят из сотен и тысяч файлов. Изменения в одном файле может влиять на многие другие файлы и отслеживать такое влияние без автоматической проверки типов может быть очень трудно. Разработка веб сайтов или приложений в этом случае занимает на много больше времени.
Строгая типизация это не единственное, что предлагает TypeScript разработчикам. Он добавляет новые типы данных, декораторы, интерфейсы, расширенные возможности для классов и многое другое. Эти функции и возможности TypeScript помогают программистам улучшить свою работу, тратить меньше времени на дебаггинг и в целом чувствовать себя более уверенно, не боясь случайно не нарушить работу других частей проекта.