Что такое TypeScript
TypeScript — это не самостоятельный язык программирования, а надмножество JavaScript, которое расширяет возможности разработки веб-приложений благодаря поддержке статической типизации.
Проще говоря, это тот же JavaScript, в котором проще отлавливать ошибки, проводить рефакторинг, а следовательно с ним легче масштабировать сложные системы.
Технологию разработала компания Microsoft и сделала ее общедоступной. ПопулярностьTypeScript постоянно растет — за первый квартал 2020 года технология заняла 7 строчку рейтинга GitHub по количеству pull-реквестов, обогнав PHP и C.
Отличие TypeScript от других фронтенд-технологий
Напомним, что на сегодняшний день JavaScript — единственный язык программирования, который поддерживается браузерами, поэтому выбор альтернативы JavaScript в основном влияет не на качество финального продукта, а на удобство разработчика, скорость и стоимость создания фронтенд-приложения.
Сравнивать JS и Typescript не совсем корректно, так как они по сути взаимозаменяемы и любой JS код является валидным кодом TS. Поэтому TypeScript соперничает с Flow, PureScript и Elm, но достаточно взглянуть на диаграмму ниже, чтобы понять, почему не следует рассматривать эти альтернативы.
Около 5 лет назад, на заре своего существования Flow был таким же популярным как TS. Обе технологии были новыми на рынке и обладали приблизительно одинаковыми возможностями. Первой отдавали предпочтение в Facebook и частично среди React-разработчиков, а за продвижение последней отвечала Microsoft, технологию также поддержали в Google и в сообществе Angular-разработчиков. В конечном итоге TypeScript победил, и с каждым годом все больше специалистов отдают ему предпочтение.
PureScript и Elm и близко не могут составить конкуренцию, так как не обладают столь широкой поддержкой профессиональной тусовки и нет столь крупных IT компаний, которые бы использовали эти технологии в продакшене.
Ключевые преимущества TypeScript
Код легче понять. В языках со статической типизацией, таких как TS, компилятор и IDE сразу подскажет вам, какие аргументы принимает функциональный код, какие значения он отдает, как манипулирует внешними данными и многое другое.
Помогает создать правильный рабочий процесс. Подобно подходу TDD, при котором разработчик сначала создает тесты для проверки системы и только после этого реализует функционал, TS побуждает вас подумать об интерфейсе вашего кода, прежде чем переходить к его внутренней реализации.
Помогает не допускать баги. Если код компилируется, высок процент вероятности, что он работает. Одно исследование показало, что TS способен отлавливать до 15% всех ошибок JS.
Код легче поддается рефакторингу. С TS не страшно вносить изменения в кодовую базу — среда разработки поможет найти все варианты использования реорганизованных частей кода, укажет на измененные классы, функции и объекты, предупредит об ошибке компиляции, в случае несоответствия типов после рефакторинга.
Благодаря этим преимуществом TypeScript можно справедливо назвать масштабируемым JavaScript, как гласит слоган.
Когда следует отдать разработку на TypeScript на аутсорс
К сожалению, не получится взять репозиторий с JavaScript кодом и мгновенно переключить его на идиоматический TypeScript. На это потребуется время. Если проект небольшой и вы не планируете его развивать, то спокойно оставьте все как есть. Переход на TypeScript оправдан, если у вас есть планы по развитию и масштабированию вашей системы. В долгосрочной перспективе перенос кода сэкономит вам бюджет.
Если вы создаете новое frontend-приложение, то следует рассмотреть аутсорсинг разработки. Сопровождение и доработка такого приложения обойдется дешевле. Может сложится ошибочное впечатление, что с переходом на TS вы попадаете в зависимость от этой технологии, но в действительности новым разработчикам, даже мало знакомым с языком будет очень легко войти в проект, так как синтаксис интуитивно понятен.
Поэтому если вы хотите быстро запустить свой продукт, но потом привлечь штатных специалистов для его сопровождения, аутсорсинг — хороший вариант, который позволит опытным TS-программистам проделать всю самую сложную работу на старте проекта.
Наши специалисты по TypeScript
Все наши старшие frontend-разработчики давно оценили достоинства TS, и теперь это строгое требование ко всем новым специалистам, которых мы нанимаем. Владение этой технологией стало обязательным пунктом программы обучения.
Почему мы
Начав с нами сотрудничество вы получите доступ к команде талантливых специалистов мирового уровня которые помогут быстро внедрить TypeScript в уже существующий проект, или создать новый качественный продукт с нуля.