реклама
разместить

TypeScript: спасение или очередной повод страдать?

Сегодня пообщалась с Александром, одним из наших JS-разработчиков, и задала ему парочку вопросов про TypeScript.

Почему его так любят, а кто-то до сих пор избегает? Ускоряет ли он работу или только добавляет головной боли? И почему некоторые до последнего пишут на «чистом» JS, пока их не застанет врасплох рефакторинг?

Если вы тоже хотите разобраться, зачем этот TS нужен (и нужен ли вообще), то вот свежий взгляд изнутри – личный опыт, плюсы, минусы и парочка забавных багов, без которых жизнь разработчика была бы слишком спокойной! 🚀

Погнали)

1. Какие проблемы JavaScript нивелирует TypeScript?

TS позволяет писать более качественный код и делает это с удобством для разработчиков.) Всегда приятно просто доставать нужные поля из объектов или вызывать нужное по цепочке, также он (вместе с IDE) подсказывает где ты ошибся. Статическая типизация + подсказки = сила! Но также важно помнить, что только от разработчика зависит сможет ли TS помочь, ведь никто не спасет нас от any или плохо написанных интерфейсов)

2. Расскажи, как TypeScript упростил разработку на твоем проекте?

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

3. Как TypeScript влияет на скорость разработки?

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

4. Бывают ли у вас проблемы совместимости TypeScript и экосистемой JavaScript?

Проблемы встречаются, пусть и нечасто в целом они некритичные. Встречались либы без типов или с кривыми типами, хорошо если это внутренняя и можно переопубликовать или настроить как-то конфиги, иначе приходилось выбирать другую или делать костыли, которые нередко стреляли в колено) Также встречаются проблемы с IDE или с линтерами при работе с TS. На моем примере из последнего что помню, поле продолжало подсвечиваться до перезагрузки IDE (после обновления библиотеки начало подсвечивать поля и все. Типы видны, но ошибка)) Хорошо, когда ты знаешь, что проблема не в коде, иногда это занимает время на проверки.

5. Какие плюсы и минусы у TypeScript с точки зрения разработки?

+ Качество кода, меньше ошибок (меньше времени на отладку кода)

+ Легче поддерживать, вникать в код и проводить ревью

+ Скорость разработки на крупных проектах (вынес отдельно, люблю подсказки)

- На небольшом проекте TS нужно настроить и затем еще писать типы (иногда быстрее написать на чистом)

- Могут быть сложности при обучении и поиске решений (иногда мало инфы по нужным вопросам)

6. В каких случаях TypeScript важен в стеке Junior-разработчика, советовали бы его изучить?

Ну тут без вариантов, советую изучать и юзать как можно раньше. На JS вы сможете потом переключиться, при необходимости, хоть и не факт что захотите) C JS на TS уже может понадобиться сила воли (ведь проще не тыкаться в конфиги, не заморачиваться и писать в html файле тега script), но я в Вас верю!) Может со временем перестанут спрашивать на собесах что получится от суммирования строки и объекта, если мы насядем на TS поплотнее)

Итак, TypeScript – любовь или головная боль?

Он явно делает код чище, работу быстрее, а нервы крепче (если не злоупотреблять any и костылями). Да, настройка и совместимость бывают капризными, но магические автоподсказки того стоят. В общем, если хочется писать не только «чтобы работало», но и «чтобы не страдать потом», TS – отличный выбор! 🚀

реклама
разместить
Начать дискуссию
Разработка IT-продукта в 2025: как сэкономить минимум в 2 раза и запустить проект без классических ошибок — 7 проверенных шагов
Разработка IT-продукта в 2025: как сэкономить минимум в 2 раза и запустить проект без классических ошибок — 7 проверенных шагов
44
Управление проектами: дайджест новых публикаций
Управление проектами: дайджест новых публикаций

Как оценивать задачи, ABCDE для РП, эффективные разборы полетов, умирающий и вечно живой Agile, любовь и работа, идеальное собеседование, гору от ума и всё интересное, что писали про управление проектами. Мы прочитали все публикации и выбрали для вас самые крутые и полезные. Читайте, сохраняйте и применяйте!

1010
11
Сертификация сумок: цена, сроки оформления, нюансы

Сумки — это не только модный аксессуар, но и товар, подлежащий обязательной или добровольной оценке соответствия. Чтобы продукция могла свободно поставляться в торговые сети и реализовываться на маркетплейсах, производителям и поставщикам необходима сертификация сумок. Центр сертификации «СерТраст» поможет оформить все документы в установленные сро…

"Я сделал за 25 минут, а ваши спецы сколько будут ковыряться?" 🤡💥
"Я сделал за 25 минут, а ваши спецы сколько будут ковыряться?" 🤡💥
В начале было слово или почему ТДД невозможно

Для экономии времени

Стоит ли UX/UI-дизайнеру учить код? Разбираемся, когда это реально полезно
Стоит ли UX/UI-дизайнеру учить код? Разбираемся, когда это реально полезно
Вложили 1,5 млн рублей в кондитерский отдел — закрылись через 4 месяца с долгом в 350 000

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

Важное примечание: эту картинку нам сгенерил чат ДжиПиТи-шка — в этой статье это единственная бурная фантазия нашего редактора
22
Топ 10 ошибок, которые мешают стать программистом: разбор ключевых проблем новичков
Топ 10 ошибок, которые мешают стать программистом: разбор ключевых проблем новичков
11
Typescript переходит на язык программирования Go
реклама
разместить
hypetype — как легко печатать любые символы напрямую с клавиатуры. От длинного тире и «кавычек» — до знака ₽ и даже эмодзи 😎

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

Иллюстрация: профилактика «Альцгеймера» — запоминание большого количества цифр + мелкая моторика рук для ввода символов
1212
11
Синдром фреймворка: почему у нас есть 3+ млн библиотек, но так мало полезных продуктов?
Why you may not need a framework. Источник: <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fericheikes.com%2Fmay-not-need-framework%2F&postId=1859521" rel="nofollow noreferrer noopener" target="_blank">Eric Heikes</a>

Сначала ты терпишь. Потом ищешь альтернативы. А потом открываешь пустой репозиторий и пишешь первый коммит…

88
11
11
Javascript становится медленным языком программирования
[]