Что лучше javascript или typescript
Перейти к содержимому

Что лучше javascript или typescript

  • автор:

Рассказ о том, почему в 2021 году лучше выбирать TypeScript, а не JavaScript

Недавно я, используя React Native, занимался разработкой мобильного приложения для медитации Atomic Meditation. Эта программа помогает тем, кто ей пользуется, выработать привычку медитировать, ежедневно уделяя этому занятию какое-то время. В ходе работы у меня появились серьёзные причины приступить к изучению TypeScript и начать пользоваться им вместо JavaScript в проектах среднего и крупного размера.

Прежде чем я начну свой рассказ, мне хотелось бы отметить, что вы сможете разобраться в этой статье, даже если никогда не пользовались React Native. Я буду всё подробно объяснять. А если вы делали какие-нибудь проекты на React, то, читая эту статью, можете считать, что React и React Native — это одно и то же.

А теперь расскажу о том, как обычный JavaScript втянул меня в неприятности.

День 1: всё идёт как надо

В React Native есть объект AsyncStorage , который представляет собой хранилище данных типа ключ/значение с асинхронным доступом к значениям по ключам. Он даёт разработчику очень простой механизм для организации постоянного хранения данных на мобильном устройстве пользователя.

Например, воспользоваться им можно так:

AsyncStorage позволяет хранить лишь строковые данные. Поэтому для того чтобы поместить в это хранилище число — это число сначала надо конвертировать в строку.

Ниже показано применение React-хука useState для объявления переменной sessionCount и для установки её начального значения в 0. Тут же имеется и функция setSessionCount , которая позволяет менять состояние sessionCount :

Предположим, пользователь завершил сеанс медитации (я, напомню, занимался разработкой приложения для медитации). В sessionCount хранится общее количество сеансов медитации, завершённых пользователем (я буду теперь называть этого пользователя «Anxious Andy» — «беспокойный Энди»). Это значит, что нам надо прибавить 1 к значению, хранящемуся в sessionCount . Для этого вызывается функция setSessionCount , в которой и выполняется прибавление 1 к предыдущему значению sessionCount . А потом количество завершённых медитаций нужно сохранить в AsyncStorage в виде строки.

Всё это надо сделать в некоей функции, которую я предлагаю назвать saveData :

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

День 2: затишье перед бурей

Беспокойный Энди получает уведомление, которое напоминает ему о том, что через 5 минут начинается его медитация. Но он не только беспокойный, но ещё и нетерпеливый. Поэтому он тут же идёт к себе в комнату, находит своё рабочее кресло, удобно (но при этом — сохраняя ясное сознание) в него садится и открывает программу.

Теперь, когда программа загружается, данные сессии Энди нужно прочитать из хранилища. В React хук useEffect позволяет выполнять функцию-коллбэк при монтировании компонента.

В коллбэке мы асинхронно получаем данные из хранилища, а после этого вызываем функцию setSessionCount() , передавая ей эти данные, то есть — «1» :

Беспокойный Энди успешно справляется с ещё одной медитацией. Поэтому к sessionCount надо добавить 1, что позволит сохранить общее число завершённых сеансов медитации.

Новое значение, как и прежде, мы записываем в хранилище:

К настоящему моменту пользователь завершил 2 сеанса медитации.

День 3: буря

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

Он хочет узнать о том, как далеко продвинулся в деле выработки полезной привычки. Поэтому он открывает экран статистики. «О, да тут много всего интересного», — приговаривает он. «Отличная программа!».

Но его любовь к этой программе быстро сходит на нет…

Программа сообщает ему о том, что он провёл 11 сеансов медитации. А он-то медитировал всего два раза!

Неправильная статистика по сеансам медитации

Что пошло не так?

В первый день мы записали в sessionCount начальное значение — число 0 .

Пользователь завершил сеанс медитации — поэтому мы добавили к sessionCount 1 . Затем мы преобразовали то, что получилось, в строку — в «1» , после чего записали это в асинхронное хранилище (вспомните — оно может хранить только строковые данные).

Во второй день мы загружаем данные из хранилища и записываем в sessionCount загруженное значение. То есть — «1» (строку, а не число).

Пользователь завершает сеанс медитации и мы прибавляем к sessionCount 1 . А в JavaScript «1» + 1 равняется «11» , а не 2 .

Мы забыли преобразовать строковые данные, считанные из хранилища, в число.

А хуже всего тут то, что наша программа при этом не выдала никаких сообщений об ошибках. Эта ошибка какое-то время оставалась незамеченной, а позже довела нас до неприятностей. Поиск источников подобных проблем может оказаться не таким уж и простым делом.

JavaScript позволил нам свободно, не сознавая того, что мы делаем, поменять в ходе выполнения программы тип данных, хранящихся в переменной.

Решить эту и другие подобные проблемы можно с помощью TypeScript.

Что такое TypeScript?

Если вы не знакомы с TypeScript, то знайте, что это, в сущности, то же самое, что и JavaScript, но оснащённое некоторыми полезными возможностями. В частности, переменные не могут менять типы. А если это случится — TypeScript выдаст сообщение об ошибке.

Браузеры не могут выполнять TypeScript-код. Поэтому TypeScript-файлы проекта надо транспилировать в JavaScript. На выходе получится несколько JavaScript-файлов (или один большой «бандл» с JS-кодом проекта).

Использование TypeScript в React Native-проектах

Добавить поддержку TypeScript в существующий React Native-проект очень просто. А именно, надо будет кое-что установить из npm и сделать пару настроек.

Теперь нужно будет лишь переименовать файлы с кодом, например — App.js в App.tsx , после чего заработает автоматическая система контроля типов.

После того, как изменено расширение файла, TypeScript разразится гневной тирадой о том, что аргумент типа ‘string | null’ нельзя назначить параметру типа ‘SetStateAction<number>’ .

TypeScript предупреждает разработчика о том, что с типами данных что-то не так

Это значит, что мне тут, чтобы избавиться от сообщения об ошибке, надо, во-первых, проверить data на null , а во-вторых — преобразовать из строки в число (воспользовавшись parseInt() ):

Использование TypeScript подталкивает разработчика к написанию более качественного и надёжного кода. Это просто замечательно!

По каким материалам изучать TypeScript?

Я изучал TypeScript по этому видеокурсу канала Net Ninja. И если бы мне надо было бы что-нибудь изучить, то я в первую очередь поинтересовался бы тем, нет ли на этом канале курса по тому, что мне нужно.

Кроме того, официальная документация по TypeScript очень даже хороша.

Итоги

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

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

Разработка SPA: TypeScript или JavaScript — что выбрать?

Наша компания специализируется на создании сложных веб-проектов и веб-сервисов и фактически занимает среднюю нишу между веб-интегратором и венчурной студией разработки. Один из наших проектов дает возможность организаторам мероприятий (театрам и концертным площадкам) устанавливать на свой сайт виджет, позволяющий легко и быстро организовать процесс прямой продажи билетов онлайн (подробнее об этом проекте можно почитать в кейсе на нашем сайте).

Первоначально наш виджет был организован как вызов стороннего сервиса через iframe, встраиваемый на страницу сайта. Для идентификации пользователей и сессий использовались cookies, с которыми было немало проблем в Safari и мобильных устройствах, поэтому мы давно раздумывали над возможностью перевести наш виджет на технологии SPA.

SPA (Single Page Application), если сильно упрощать, — это web-приложение, компоненты которого загружаются единожды на одной странице, а контент подгружается по мере необходимости.

Последним доводом на чаше весов стала информация о том, что Google планирует постепенно в течение двух лет отказаться от поддержки сторонних cookie-файлов в браузере Chrome. Фактически, без изменения архитектуры, это сделает наш виджет полностью неработоспособным.

После того, как решение переводить проект на архитектуру SPA было принято, перед нами встал вопрос выбора инструментария. На чем написать приложение: как обычно на JavaScript или попробовать набирающий в последнее время популярность TypeScript?

TypeScript — язык программирования, представленный Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений, расширяющее возможности JavaScript. Язык используется такими крупными проектами, как Slack, Google и AirBnB. На нем написаны VS Code и Angular.

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

Но в нашей команде с этим языком были знакомы далеко не все. Необходимость освоения нового синтаксиса грозило срывом сроков, что для большого e-commerce проекта, над которым мы работали, могло обернуться многомиллионными потерями.

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

Опасения относительно того, что новый для многих из нас язык будет даваться с трудом и мы потратим слишком много времени на адаптацию специалистов, оказались напрасными. Любой программист, знакомый с JavaScript, может начать писать на TypeScript буквально сразу после того, как прочтет небольшой гайд “TypeScript за 5 минут”. Разумеется, для раскрытия всего потенциала языка потребуются месяцы и годы практики, но извлечь основные выгоды от использования TypeScript можно при первом же опыте применения при условии правильного его использования — об этом мы еще поговорим чуть ниже.

Знаем, звучит страшно. Но после следующей пары абзацев вам все станет понятно, даже если вы очень далеки от программирования.

Ключевое преимущество использования TypeScript кроется в самом названии языка, который (очень вольно, разумеется) можно перевести на русский, как Типизированный Код.

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

Допустим, в JavaScript у вас есть простой метод, возвращающий сумму двух чисел «a» и «b»:

Если по какой-то ошибке в качестве аргументов в этот метод будут переданы строковые переменные «1» и «2», в результате будет возвращена просто склеенная строка «12».

В TypeScript аналогичный метод будет выглядеть так:

И при попытке передать в качестве аргумента что-то отличное от числовой переменной, ошибка проявится сразу же при попытке компиляции в JavaScript (о компиляции мы еще поговорим ниже):

Таким образом, при некорректном объявлении типов в проекте будет очень сложно использовать методы классов и функции не по назначению, например, случайно передав в них не тот объект, или обратиться к несуществующему свойству объекта. Не говоря уже о практически полном сведении на «нет» возможных ошибок, связанных с банальными опечатками.

Описание типов, конечно, требует времени, но помимо того, что это дисциплинирует разработчиков, заставляя глубже продумывать архитектуру проекта, это приносит и дополнительные преимущества, а именно…

Это преимущество напрямую вытекает из предыдущего. Если вы уже писали unit-тесты, то теперь, как минимум, можно не беспокоиться о дополнительной проверке типов передаваемых аргументов. Вместо этого, статический анализатор в используемом вами IDE сможет в реальном времени анализировать код, улучшая процесс разработки, подсказывая свойства и подсвечивая возможные ошибки. Одно только это сократит количество unit-тестов, а значит и время на их написание на 10–20%.

Из-за сокращений объема строк код становится гораздо более структурированным и читабельным. Кроме этого, код фактически становится само-документированным. Глядя на правильно оформленный метод, сразу становится понятно, как с ним работать, остается лишь описать бизнес-логику.

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

Обратная совместимость с JavaScript позволяет не переписывать весь существующий код полностью, а реализовать плавный и поэтапный переход, переписывая лишь необходимые части приложения и постепенно перенося полюбившиеся JS-библиотеки.

Как и все технологии, TypeScript не является «серебрянной пулей», раз и навсегда решающей все ваши проблемы. При неправильном и необдуманном использовании все преимущества языка нивелируются. Например, если разработчики будут лениться, и вместо строгого определения типов данных пытаться использовать тип Any (любой тип), толку от использования TypeScript не будет никакого.

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

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

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

Еще один распространенный страх заключается в том, что рано или поздно язык JavaScript эволюционирует, вберет в себя все лучшее, что есть в TypeScript, и в TypeScript отпадет необходимость. Такая вероятность, разумеется, есть. Однако, во-первых, относительной гарантией жизнеспособности языка является поддержка со стороны такой крупной корпорации, как Microsoft. И, во-вторых, сам факт, что страх этот появился еще лет пять назад и до сих пор не материализовался, говорит о том, что неразумно не использовать преимущества инструмента до тех пор, пока не появится более удобная и функциональная замена.

Наш опыт убедил нас в том, что преимущества TypeScript перевешивают все недостатки. В итоге мы имеем код, на который приятно смотреть, легко поддерживать и развивать. А рефакторить одно удовольствие! Анализатор сразу скажет, где используется данный тип, а компилятор не даст оставить неработающий код. Мы уверены, что время, уходящее на описание типов, стократно окупится отсутствием самых популярных ошибок и простотой поддержки проекта.

Однако, важным фактором перехода на TypeScript все-таки является уверенное владение и богатый опыт написания проектов на JavaScript. Пока вы делаете только первые шаги в JS и еще не столкнулись с ограничениями этого языка, скорее всего извлечь значимых преимуществ от перехода на TS не получится.

Хотите, чтобы и ваш проект был выполнен с таким же вниманием к деталям и фокусом на задачи вашего бизнеса? Оставьте заявку у нас на сайте!

TypeScript vs JavaScript: What's the difference?

If you’re a new developer, then you may have heard about TypeScript, a relatively new programming language that has gained popularity since its release in 2012 by Microsoft [1] .

Interestingly, TypeScript isn’t actually a standalone programming language. Instead, TypeScript is considered to be a superset of JavaScript.

You can think of a superset of a programming language as an extension that introduces new features and expands the capabilities of that language. In other words, any program written in JavaScript will also work in TypeScript.

So, if you already know JavaScript, learning TypeScript will come fairly naturally to you.

In this article, we’ll be going over a quick rundown of what TypeScript is, why you should use it, and some of the key differences that make it stand out from JavaScript.

We’ll cover:

Get hands-on with TypeScript today.

Try one of our 300+ courses and learning paths: TypeScript for Programmers.

What is JavaScript?

JavaScript ES6 (also known as ECMAScript 6) is a client-side, cross-platform, prototype-based scripting language created by Brendan Eich.

JavaScript is used extensively in front-end web development to help build dynamic, interactive web applications. JavaScript is dynamically typed, meaning all type checking happens during compilation. Dynamically typed languages prioritize developer efficiency, enabling them to write less code to complete their projects.

Dynamically typed languages also tend to be more flexible, but offer code that is typically less optimized because it must be run first to find out if any bugs are present.

JavaScript also runs directly in the web browser, so no additional resources are needed to execute JavaScript code. However, it can still be overwhelming to debug a cascade of errors all at once instead of along the way.

Note: Other examples of dynamically typed languages include Python, PHP, Perl, and Ruby.

Since its inception in 1995, JavaScript has gone through multiple iterations to improve its functionality, and make software development easier. Now, it can even be used to create interactive games!

Plain JavaScript started off as a very simple language meant to be embedded as short snippets of code on a web page. This is because, at the time, a few dozen lines of code were all a web browser could really handle without becoming unusably slow.

Now, modern browsers are capable of running JavaScript applications with hundreds of thousands of lines of code.

JavaScript also benefits from having a large, passionate community, extensive documentation, and plenty of libraries and frameworks. In addition, JavaScript supports many client-side APIs that can reduce the amount of code that a software developer needs to write. For these reasons, JavaScript is a popular choice for most development teams.

That being said, JavaScript wasn’t originally meant for use in large projects. So, even though small projects could be reliably debugged, attempting to debug a large project in JavaScript could be a tedious, time-consuming process.

Note: You may not think of JavaScript as being an object-oriented programming language, but it actually has great support for OOP!

What is TypeScript?

TypeScript is an open-source programming language but started off as an internal product at Microsoft in 2010. TypeScript was made publicly available on GitHub [2] in late 2012.

Since TypeScript is considered to be a strict superset of ECMAScript 2015, any JavaScript program can be considered a TypeScript program as well.

Unlike JavaScript, TypeScript is a statically typed programming language. As a static type checker TypeScript will audit the behavior of certain variables before you run your program. This is the case even when you declare variables without specifying their type. In these situations, TypeScript can automatically assign types to declared variables. This is known as type inference and is a built-in capability of other languages like Kotlin, and Scala.

Once a variable type is assigned, TypeScript will enforce it throughout the code, which can improve consistency, and help debug potential errors before compilation time. The trade-off for gaining this extra support is losing some of the flexibility that JavaScript developers are accustomed to.

Note: Statically-typed languages include Java, C, and C++. With static typing, the programmer must specify the data type of every variable being declared.

TypeScript и JavaScript: что использовать и почему

TypeScript — open-source язык программирования, созданный и поддерживаемый Microsoft. Это надмножество JavaScript: любой JS код запускается в окружении TypeScript.

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

В отличие от JS, TypeScript компилируемый язык, как C# или Java. Среди фич TypeScript можно встретить множество знакомых вещей. Мои любимые – enum, интерфейсы, модификаторы доступа, неймспейсы, дженерики и т.д.

Множество npm библиотек написано на чистом JS, поэтому TypeScript’у нужен был способ типизировать их. Так появились файлы объявления типов (.d.ts). Такие файлы определяют типы с информацией о коде. Компилятор с их помощью сверяет типы в TypeScript коде. Сейчас большинство JS библиотек имеют TypeScript версии. Даже если в библиотеке нет объявленных типов, TypeScript может вывести их. В остальных случаях вы можете сами объявить типы.

Профессия Frontend-разработчик PRO

Готовим Frontend-разработчиков с нуля

На курсе вы научитесь создавать интерфейсы веб-сервисов с помощью языков программирования и дополнительных технологий. Сможете разрабатывать планировщики задач, мессенджеры, интернет-магазины…

TypeScript отлично подходит для больших веб-приложений, так как позволяет писать как фронтенд так и бэкенд код. Для бэкенда нужно установить библиотеку ts-node для исполнения TypeScript кода на Node.js окружении.

Какие преимущества у TypeScript перед JavaScript?

В 2022 году TypeScript вошел в топ-5 используемых языков во всем мире. Неудивительно, ведь TS постоянно развивается, добавляются новые фичи, а команды TS прислушиваются к сообществу разработчиков.

Основное преимущество TS перед обычным JS в компиляторе, который проверяет типы и ошибки. Он проверяет типы и показывает ошибку в реальном времени. Это удобно при рефакторинге кода, компилятор подсвечивает вещи, которые вы могли упустить.

TypeScript и JavaScript: что использовать и почему

В паре с новейшей IDE типа Visual Studio Code TS может похвастаться функцией Intellisense – подсказки по коду и автокомплитер кода. Эта фича ускоряет разработку.

Разработчики могут настроить поведение TS через файл tscobnfig. Например, в TS есть опция транспиляции кода, которая адаптирует код под предыдущие версии JS, чтобы приложение запускалось во всех браузерах. Также можно выделить опцию strict mode – более строгая проверка кода.

Еще одна крутая фича TS – возможность запускаться параллельно с JS кодом, что упрощает интеграцию в старых проектах с множеством JS файлов.

Также TS позволяет использовать ES6 и ES7 фичи, которые еще не поддерживаются основными браузерами. Например, чейнинг оператор и константы в классах поддерживались в TS задолго до официальной поддержки ECMAScript.

И наконец, в TS много фич, которых нет в JS, что делает кодинг веселее. Интерфейсы, enum и дженерики сильно повысят читаемость вашего кода.

Какие недостатки у TypeScript перед JavaScript?

TS дает множество преимуществ, но он также привносит и недостатки. Среди них нет критичных, однако новичкам стоит о них знать.

Существенный минус TS заключается в ложном ощущении защищенности у его пользователей. Очень часто разработчики, переходя на TS, слишком сильно полагаются на компилятор в надежде, что он подсветит все ошибки с типами. Не думайте, что ваш TS код идеален. Разработчики TS соблюли тонкую грань между гибкостью и правильностью. Но хоть TS и не совершенен, он все же лучше обычного JS, на мой взгляд. Ведь компилятор отлавливает баги, которые вы могли бы не увидеть. Доказано, что TS помогает находить на 15% больше багов чем JS.

Дополнительный шаг с компиляцией также можно отнести к недостаткам TS. Этот шаг увеличивает время билда, а также усложняет сборку.

TS привносит много новых фич, которые могут быть не знакомы фронтенд разработчикам. Из-за этого изучать этот язык сложнее. Если использовать весь потенциал языка, TS может быть сложновато понять неподготовленному разработчику. Ему потребуется часто гуглить или спрашивать наставника.

TypeScript и JavaScript: что использовать и почему

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

Когда стоит использовать TypeScript в новых проектах?

Вас может пугать внедрение новой технологии, с которой у вас совсем нет опыта. Однако с TS оно того стоит, ведь плюсы перевешивают минусы.

Если вы работаете один и не планируете привлекать людей для разработки, я рекомендую использовать TS для следующего проекта. Первые часы настройки будет сложновато, но вы быстро полюбите TS и больше не захотите возвращаться к обычному JS. Сначала вы будете писать код медленнее, но так вы сэкономите на дебаге и рефакторинге в долгосрочной перспективе.

Если же вы работаете в команде, тут будет сложнее. Нужно найти согласие в команде и с менеджментом. Хоть TS и поможет вашей команде в конечном итоге, но в краткосрочной перспективе он замедлит вашу команду. Команде нужно быть готовой к тому, что придется часть времени тратить на изучение TS, его фич и лучших практик. Помочь команде совершить плавный переход может сотрудник с глубоким знанием TS или любого другого ООП языка (например, C#).

Если команда готова пожертвовать краткосрочным снижением производительности для изучения TS, я рекомендую этот язык. Вы точно не пожалеете.

Когда не стоит использовать TypeScript в новом проекте?

Есть причины, по которым я бы не рекомендовал использовать TS, несмотря на всю привлекательность TS.

Самая главная причина не использовать TS – строгий дедлайн. Дедлайны достаточно стрессовая вещь, и внедрение новой незнакомой технологии в таком случае не рекомендуется. К сожалению, на изучение TypeScript нужно время. А это время можно потратить на проекты, где есть дедлайны.

У новичков могут возникнуть сложности с настройкой TS. Возможно, потребуется множество npm библиотек, работа с бандлерами (например, webpack). Если у вас нет времени все это изучать, не используйте TS.

Очередной аргумент – повышенная точка входа для разработчиков. Если проект open-source, разработчикам может быть сложнее вносить доработки.

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

TypeScript и JavaScript в старых проектах

Миграция старых проектов с JS в TS вносит множество преимуществ в цикл разработки. TS позволяет отловить баги, которые раньше не замечали. Также упрощается поддержка проекта.

В маленьких проектах миграция с JS на TS может потребовать установку парочки библиотек и простой смены расширений файлов с .js на .ts с последующим фиксом ошибок TS компилятора.

В проектах с сотнями JS файлов все сложнее. Внедрять TS можно постепенно. Можно приоритизировать миграцию файлов в TS и их параллельную работу со старым JS кодом.

Второй вариант – сохранить старый код, а уже новые фичи писать на TS. Когда фича задевает старый код, вы можете мигрировать его прямо пока пишите код для этой фичи.

TypeScript или JavaScript: вердикт

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

Несмотря на более сложный код и дополнительное время на компиляцию, в долгосрочной перспективе вы сэкономите время. Если вы работаете один, я настоятельно рекомендую использовать TS в вашем следующем проекте.

Если же вы работаете в команде, внедрение TS потребует убеждения людей. Рекомендую начать новый TS проект в свободное время. Потом вы можете просто показать этот проект членам команды и объяснить все преимущества TS.

Автор: Tim Mouskhelichvili

Редакция: Команда webformyself.

Профессия Frontend-разработчик PRO

Готовим Frontend-разработчиков с нуля

На курсе вы научитесь создавать интерфейсы веб-сервисов с помощью языков программирования и дополнительных технологий. Сможете разрабатывать планировщики задач, мессенджеры, интернет-магазины…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *