Comments 7
Хорошая статья. Но, когда кто-то рассказывает о недостатках динамической типизации, обычно это делают как-то так: берете револьвер, заряжаете полный барабан, взводите курок, направляете в ногу, стреляете… вот! Видели?! Вы выстрелили себе в ногу! Нет чтобы рассказать о проблеме вариативности, например, или о типах в сигнатурах методов в браузерных API… Мне кажется, используя ванильный JS и тайплинтинг (TS + JSDOC) — можно писать вполне надежный и качественный код. Во всяком случае, в списке проблем, проблемы с типами у вас будут где-то на предпоследнем месте. Я это к тому, что у TS куча недостатков, но не стоит о них так уж сильно беспокоится, «бутылочное горлышко» у вас в другом месте.
P.S. В списке способов проверки типов в рантайме не хватает конструктора. Да, это мутабельное свойство, но перезаписывать его — это все равно что ударить по компу бейсбольной битой и потом удивляться что код не пашет… Ну то есть при желании можно все на свете поломать, даже при самой строгой типизации.
P.S. В списке способов проверки типов в рантайме не хватает конструктора. Да, это мутабельное свойство, но перезаписывать его — это все равно что ударить по компу бейсбольной битой и потом удивляться что код не пашет… Ну то есть при желании можно все на свете поломать, даже при самой строгой типизации.
0
Абсолютно согласен с Вашим комментарием…
Каждая статья про недостатки TS скатывается в
— «давайте переопределим дефолтный метод»
— «мы все можем привести к any и ваш TS не работает»
— «сторонние библиотеки» (к всем актуальным на сегодняшний день библиотекам есть ts обертки).
У ТС есть недостатки, но Kotlin не даёт столько возможностей и удобства как TS. С Dart я не работал…
Каждая статья про недостатки TS скатывается в
— «давайте переопределим дефолтный метод»
— «мы все можем привести к any и ваш TS не работает»
— «сторонние библиотеки» (к всем актуальным на сегодняшний день библиотекам есть ts обертки).
У ТС есть недостатки, но Kotlin не даёт столько возможностей и удобства как TS. С Dart я не работал…
+1
del
0
При работе с внешними данными всегда нужна валидация — минимум по набору данных и их типу, оптимально — по регулярке или функции валидации. Первый вариант подходит для разнообразных АПИ, второй — для пользовательских данных и приеме параметров через URL. В промышленных проектах это само собой разумеется, и "дыры" никакой нет.
0
UFO just landed and posted this here
Очень вторичная статься, всё это было уже написано не раз, не два и не три, и на хабре и на кучен других ресурсов.
0
Строгая типизация без статического анализатора приносит мало пользы, но хоть как-то улучшает ситуацию.
0
Sign up to leave a comment.
Сага о типизации и тайпчекинге для JavaScript