Скидки на курсы ждут в личном кабинете. Нажмите тут

TypeScript — это как JavaScript, но не совсем. Зачем он нужен и стоит ли его учить?

TypeScript — это как JavaScript, но не совсем. Зачем он нужен и стоит ли его учить?
Екатерина Садчикова
часы голубые
7 мин.

Согласно опросам, по итогам 2021 года TypeScript стал седьмым в рейтинге самых популярных языков программирования. А вместе с Python он стал одним из двух языков, которые разработчики сильнее всего хотят изучить. Рассказываем, что такое TypeScript и почему он стал так популярен.

Зачем нужен TypeScript, когда уже есть JavaScript?

Хотя JavaScript изначально разрабатывался как язык программирования на стороне клиента, разработчики поняли, что его также можно использовать в качестве языка программирования на стороне сервера. По мере того как JavaScript развивался, он становился сложнее и не смог полностью раскрыть свой потенциал в качестве серверной технологии. Чтобы восполнить этот пробел, был разработан TypeScript. Он был создан как надмножество JavaScript, чтобы упростить код при разработке крупных проектов.

Код JavaScript действителен в TypeScript

Весь код JavaScript действителен и в TypeScript. Источник изображения: medium.com

Что такое TypeScript

TypeScript — это строго типизированный язык программирования, основанный на JavaScript. Код TypeScript преобразуется в JavaScript и, соответственно, запускается везде, где запускается JavaScript: в браузере, Node.js, Deno и в приложениях.

Программист Microsoft Андерс Хейлсберг (он же создатель Turbo Pascal, Delphi и C#) разработал TypeScript в 2012 году. По его словам, TypeScript — это не совсем новый язык, а скорее расширенная версия JavaScript. Разработчики могут кодить на JavaScript, используя TypeScript по мере необходимости.

TypeScript — JavaScript со статической типизацией

Технически TypeScript — это JavaScript со статической типизацией. Источник картинки: serokell.io

Поскольку в JavaScript типизация динамическая, многие ошибки в коде видны только во время его выполнения. Это неудобно, ведь приходится тратить много времени на поиск багов. С этой проблемой и справляется TypeScript — в нём тип переменной определяется в момент её создания, и его нельзя изменить позже.

Таким образом, разработчик в любой момент знает, какой тип данных находится в какой переменной, это облегчает ему чтение кода и рефакторинг (переработку кода программы, чтобы сделать его более понятным и простым). Компилятор TypeScript просто не даст программисту собрать нерабочий код, сообщение об ошибке (синтаксической или семантической) появится сразу, прямо во время написания кода. Так отсекается большая часть runtime-ошибок, которые часто встречаются в браузере в JavaSсript.

Код JavaSсript

Ошибки видны прямо во время разработки. Источник скриншота: YouTube-канал knowcity

Получается, что TypeScript — это средство написать изначально стабильный код. С 2012 года популярность TypeScript неуклонно растёт. Например, новая версия одного из популярнейших фреймворков Angular полностью написана на этом языке.

Преимущества TypeScript

Рассмотрим основные плюсы TypeScript.

Строгая типизация. Строгая типизация предполагает, что объекту данных всегда присвоен строго определённый тип и неявное преобразование типов не допускается. Написанный на TypeScript сценарий не может случайно запросить значение поля, если оно не определено в объекте, или вызвать переменную как функцию. С основными типами переменных, доступными в TypeScript, можно ознакомиться в этом мануале.

Программирование в Visual Studio Code

При программировании с помощью Visual Studio Code TypeScript даёт синтаксические подсказки. Источник скриншота: coderslang.com

Раннее обнаружение ошибок. Благодаря тому, что компилятор проверяет код, ошибки обнаруживаются во время разработки, что снижает вероятность багов и неожиданностей во время выполнения программы. Проверка правильности типов во время компиляции также помогает проводить рефакторинг кода. В целом, эта функция помогает избежать случайных ошибок, которые, в противном случае, разработчикам JavaScript пришлось бы прочёсывать вручную.

Компиляция. Код, написанный на TypeScript, обратно совместим с JavaScript и компилируется в последний. Вы можете взять любой рабочий JavaScript-проект и постепенно внедрять в него TypeScript. При этом TypeScript во время компиляции проверяет код на ошибки.

Дополнительные возможности ООП (объектно-ориентированного программирования). Речь о поддержке интерфейсов и модификаторов доступа, обобщений, модулей, пространств имён и окружений (ambients). В JavaScript этого нет.

Большие проекты. TypeScript упрощает создание больших и сложных программ и приложений, такие проекты легче поддерживать, масштабировать и развивать на TypeScript, чем на JavaScript.

Открытый исходный код. Благодаря этому TypeScript быстро развивается и обрастает новыми возможностями. Также он кроссплатформенный, а значит, для разработки можно использовать и Windows, и MaсOS, и Linux.

Большое комьюнити. Вокруг JavaScript и TypeScript сложилось огромное сообщество, есть много готовых открытых решений.

Фреймворк Angular использует TypeScript. Поэтому перед началом работы с одним из крупнейших интерфейсных фреймворков лучше ознакомиться с основами TypeScript.

У TypeScript есть и недостатки:

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

Несмотря на минусы, всё больше разработчиков начинают работать с TypeScript из-за его преимуществ.

В чём разница между JavaScript и TypeScript

Разберём подробнее отличия JavaScript и TypeScript.

JavaScript

TypeScript

Язык для создания динамических веб-страниц

JavaScript с добавленными функциями

Язык сценариев на стороне клиента

Объектно-ориентированный компилируемый язык

Поддерживает динамическую типизацию

Поддерживает статическую типизацию, которая позволяет проверять правильность типа во время компиляции

Не поддерживает интерфейсы

Поддерживает интерфейсы

Не поддерживает модули

Поддерживает модули

Не поддерживает дженерики (позволяют работать с различными типами данных без изменения их описания)

Поддерживает дженерики

Не поддерживает функцию необязательного параметра

Поддерживает функцию необязательного параметра

Где используют TypeScript?

На TypeScript можно программировать практически всё что угодно — мобильные и десктопные приложения, бэкенд- и фронтенд-части любых веб-сервисов. TypeScript можно использовать в любом проекте, если понятно, что он будет расти и его нужно будет поддерживать.

TypeScript — это как JavaScript, но не совсем. Зачем он нужен и стоит ли его учить?

Так стоит ли освоить TypeScript?

Использование TypeScript помогает избежать ошибок уже во время разработки проекта, что избавляет от лишних затрат. Плюс там реализован ряд полезных возможностей.

Синтаксис TypeScript очень схож с синтаксисом Java и С#, так что его намного легче понять тому прогеру, который освоил один из этих языков. Возможно, придётся какое-то время покорпеть над ним, но в качестве бонуса вы освоите язык с постоянно растущей популярностью: в 2021 году он обогнал по популярности C++.  Вишенка на торте: уже освоенный TypeScript станет вашим преимуществом при откликах на вакансии или проекты на фриланс-биржах.

Понравился материал?

Оставьте комментарий

Ваш комментарий:
Имя:
Email: