@Spaceoddity

В чем преимущества TS?

И в целом, не надумана ли проблема "динамической типизации"?
Объясню своё видение (почему не нужна строгая типизация в вебе).
Обычно всегда кивают на какие-то пресловутые ошибки из-за несовпадения типов данных и якобы более простой дебаг.
Во-первых, откуда вдруг на клиенте должны появиться огромные объёмы данных, которые будут генерировать эти ошибки и затруднять их поиск? Вы собрались логику на клиенте считать? Тогда у нас уже тут принципиальное несовпадение по вопросам "соответствующих инструментов". Клиент в вебе нужен только для представления. Ну ещё какой-то интерактив - формы, события... Всё. Объём данных тут относительно небольшой. Зато большой зоопарк их типов. Ты заранее не можешь быть уверен какой тип тебе прилетит из пользовательской формы. Поэтому по дефолту большинство данных и так надо самостоятельно приводить к необходимому типу. А ещё динамическая типизация сильно экономит время на написание кода - это очень нехилая оптимизация рабочего процесса.
И вот хотелось бы реальных примеров из практики о том, как был нужен TS.
Я в свою очередь могу рассказать о своём опыте - когда как мартышка ковыряешься с проставлением типов (а иногда это и не особо очевидно), а потом оказывается что какой-нибудь популярный плагин (условный слайдер) в твоей экосистеме - не типизирован. Ручками писать? Потрошить внутренности плагина? Искать аналог? Бац, а оказывается львиная часть плагинов экосистемы написана на ES6... А главное - преимущества-то в чём?

Или это "системщики" ломанулись в веб и начали наводить тут свои порядки? Вместо того чтобы выбрать наиболее подходящий ЯП из уже существующих - придумывают каких-то кадавров...
  • Вопрос задан
  • 293 просмотра
Решения вопроса 3
yarkov
@yarkov
Помог ответ? Отметь решением.
Во-первых, откуда вдруг на клиенте должны появиться огромные объёмы данных, которые будут генерировать эти ошибки и затруднять их поиск? Вы собрались логику на клиенте считать? Тогда у нас уже тут принципиальное несовпадение по вопросам "соответствующих инструментов". Клиент в вебе нужен только для представления. Ну ещё какой-то интерактив - формы, события... Всё.

Как там в 2010?

как мартышка ковыряешься с проставлением типов (а иногда это и не особо очевидно), а потом оказывается что какой-нибудь популярный плагин (условный слайдер) в твоей экосистеме - не типизирован. Ручками писать? Потрошить внутренности плагина? Искать аналог?

Это уж как вам удобно. Вам в большинстве случаев понадобится типизировать от стороннего плагина несколько, а то и один метод и пару аргументов. Не хотите ручками? Идём на https://www.typescriptlang.org/dt/search/ и ищем готовое. А в большинстве случаев достаточно создать файлик типа modules.d.ts и там прописать строчку declare module 'ldapjs-type-parsers';, где подставить имя пакета, для которого нет типов.

Вопрос звучит как "уговорите меня использовать TypeScript". В общем вас никто не заставляет. Если лично вам неудобно, то пишите на JS.
P.S. Я уже молчу про удобство рефакторинга ))
Ответ написан
Aetae
@Aetae Куратор тега TypeScript
Тлен
А ещё динамическая типизация сильно экономит время на написание кода - это очень нехилая оптимизация рабочего процесса.

Это утверждение верно относительно языков с изначально статической типизацией против языков с динамической, но не верно для TS как такового. Если не использовать маньячные правила типа обязательного ручного проставления типов, то в 80% случаев TS сам прекрасно выводит тип, без лишних телодвижений.
Огромное ускорение от типизированого автокомплита в IDE и отсутствия возможности, например, случайно кинуть в функцию объект вместо строки, с лихвой перекрывает оставшиеся 20%.
Редкие случаи когда TS писал мне "какую-то хрень" и отказывался что-то делать, заставляя сидеть и разбираться - на поверку оказывались сильно неочевидными косяками в моём коде, которые могли бы привести к реальным багам.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Динамическая типизация экономит время на малых проектах, статическая экономит его на больших. Если вы не понимаете, зачем нужны типы, то никогда не оказывались в соответствующих условиях.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы