В мире frontend-разработки в последнее время очень много внимания уделяют TypeScript — языку программирования, созданному Microsoft в 2012 году в качестве расширенной версии JavaScript со статической типизацией данных.
В классическом JS типизация динамическая: тип данных определяется автоматически после того, как переменной присваивается значение. В TS тип данных задаётся при создании переменной — это и отличает один язык от другого. Можно сказать, что: TS = JS + система типов.
Зачем понадобилось такое расширение?
Дело в том, что динамическая типизация позволяет, например, вложить в переменную сначала строку, а затем массив — при этом не получить ошибки, но нарушить работу приложения.
Когда тип данных задан статически, его больше нельзя изменить. Во многих случаях это позволяет избежать потенциальных проблем.
Благодаря использованию типов при анализе кода, TS умеет ловить ошибки, которые JS не видит, и выдавать подсказки. В каком-то смысле он «обучает» проектировать программы правильно.
TypeScript особенно полезен в разработке больших приложений со сложной архитектурой и объёмным кодом. Тем более — когда над проектом трудятся сразу несколько программистов.
При этом под капотом всё по-старому: TS используется только при разработке, а при запуске приложения код компилируется в JS. Любой корректный код на JavaScript будет работать и в TypeScript — так что языки можно и нужно изучать параллельно.