Бесконечные дебаты: зачем использовать Typescript?

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

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

При эффективном использовании машинописного текста получается следующий код:

  • Более управляемый и читабельный
    С хорошими настройками Typescript гарантирует, что намерение кода станет явным. Глядя на код, вы сразу поймете, для чего он предназначен.

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

    Одна ошибка, которую совершают начинающие разработчики Typescript, заключается в том, что они пытаются добавлять типы ко всему. Вывод машинописного текста невероятен. Если вы не попытаетесь навязать это, вы часто обнаружите, что Typescript предоставляет типы пассивно, и вы получаете выгоду.
  • Легче понять
    Это во многом похоже на предыдущий пункт, но важно то, что вы обнаружите, что, поскольку Typescript подсказывает о небольших ошибках, которые вы совершаете, вы постепенно продолжите улучшать качество вашего кода автоматически.

    На самом деле, я утверждаю, что, пройдя первые этапы Typescript, вы начнете по-настоящему понимать, что происходит под капотом вашего кода Javascript. Вам станет понятнее, как работает ваш код.
  • Лучше поддерживается интегрированными средами разработки
    Такие среды разработки, как Visual Studio, VS Code и Rider, очень хорошо работают с Typescript. В кодовой базе Javascript большего размера может быть сложно использовать инструменты рефакторинга и удобства разработчика.

    Если вы не сделаете ничего, кроме установки Typescript, настройки tsconfig.json и изменения ваших расширений на .ts, Typescript сначала доставит вам неприятности из-за проблем с набором текста в Javascript, а затем, как только вы решите проблему проблемы, вы обнаружите, что ваша IDE магическим образом знает о вашем проекте гораздо больше, чем раньше.
  • Меньше багги
    Нет языка программирования, который позволяет нам писать код, в котором исключены ошибки, аварии или баги. Однако Typescript добавляет уровень безопасности, который может помочь предотвратить многие из них.
  • Больше возможностей для переноса
    Хотя существует множество факторов, которые делают ваш код пригодным для повторного использования и переноса из проекта в проект, возможность поместить ваш строго типизированный код в библиотеку сделает его самодокументированным вместе с переносимость, которую мы все любим, что позволит вам легко использовать его в других проектах в течение многих лет без необходимости запоминать весь свой код.

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

💡 Примечание. Переносимость — это то, с чем может помочь цепочка инструментов с открытым исходным кодом, например Bit. С помощью Bit вы можете идентифицировать и изолировать компоненты в своей кодовой базе, определяя их как независимые объекты, которые можно разрабатывать и тестировать по отдельности, а затем создавать версии, документировать и совместно использовать через центральный реестр. Подробнее здесь.

Аргументы против машинописи:

  • Сложнее читать код
    Да, это определенно может быть проблемой, если вы неправильно используете Typescript или еще не понимаете его. Однако это относится не только к Typescript. В Javascript можно сделать почти столько же ошибок, что сделать ваш код невероятно трудным для чтения.

    Требуется немного времени и усилий, чтобы научиться эффективно использовать инструмент, а затем он повышает читабельность — особенно на больших кодовая база.
  • Усложняет написание кода
    Поначалу, когда вы изучаете Typescript, это, безусловно, верно для большинства разработчиков. Это так же просто, как Javascript в начале. На самом деле, вы сделали перерыв, изучая Javascript, и у вас было время, чтобы впитать и изучить основы программирования с помощью гибкого языка Javascript. Typescript может быть повышением уровня и обычно очень того стоит, когда ваша кодовая база достаточно велика.
  • Я не могу делать то же самое в Typescript, что и в Javascript
    Это задумано. Typescript прилагает огромные усилия, чтобы отслеживать типы данных в вашем коде, чтобы помочь вам избежать случайных ошибок — или, если уж на то пошло, намеренно потенциально ошибочной логики, которая в противном случае может привести к ошибкам, которые очень трудно отследить.
  • Сложно выучить машинописный текст
    Некоторым людям трудно научиться водить машину или ездить на велосипеде. Да, это может быть сложно, но это стоит усилий. Преимущества намного перевешивают усилия, и я имею в виду не только преимущества вашего кода. Знание того, как эффективно использовать Typescript, может напрямую повлиять на вашу конкурентоспособность и уровень заработной платы.
  • Внедрение Typescript требует МНОГО дополнительной работы, когда я могу просто использовать Javascript напрямую.
    Если ваша кодовая база действительно мала, вы не ошиблись. Я не буду здесь спорить.

    Но реальность такова, что когда вы работаете над проектом, код которого состоит из более чем нескольких файлов, и вы работаете с командой из более чем одного человека, Typescript — это инвестиция, которая со временем приносит большие дивиденды.

    Я также думаю, что, когда вы достаточно хорошо знаете Typescript, вы сэкономите много времени, используя его и в сольном проекте. Я, конечно, знаю.

💡 Здесь снова пригодится Bit. Он предоставляет платформу для обмена и совместной работы над компонентами кода. Это позволяет вам публиковать и делиться своей пользовательской библиотекой с другими разработчиками и командами, а также легко управлять версиями, зависимостями и обновлениями.

Узнайте больше здесь:



Вас сдерживает кажущаяся сложность изучения машинописного текста?

Вы просто боитесь изучать Typescript?

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

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

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

Есть много онлайн-ресурсов, которые помогут вам учиться.

Ознакомьтесь с Документацией Typescript. Также посмотрите Инструментарий Typescript за 5 минут. Если вы чувствуете себя особенно авантюрным, найдите курс на Youtube.

Я буду регулярно публиковать здесь статьи о TypeScript, JavaScript, других концепциях программирования и высокоуровневых идеях кодирования.

Спасибо за чтение. До встречи в следующий раз!

Создавайте приложения с повторно используемыми компонентами, как Lego

Инструмент с открытым исходным кодом Bit помогает более чем 250 000 разработчиков создавать приложения с компонентами.

Превратите любой пользовательский интерфейс, функцию или страницу в компонент многократного использования — и поделитесь им со своими приложениями. Легче сотрудничать и строить быстрее.

Подробнее

Разделите приложения на компоненты, чтобы упростить разработку приложений, и наслаждайтесь наилучшими возможностями для рабочих процессов, которые вы хотите:

Микро-интерфейсы

Система дизайна

Совместное использование кода и повторное использование

Монорепо

Узнать больше: