Comments 29
Мне кажется, что аннотации типов будут кушать в разы меньше места чем тривиальные юнит-тесты, проверяющие типобезопасность. Так что всё равно net gain.
Вообщем из статьи можно вывести что достоинство использования динамической типизации только в том что новичкам легче язык изучать.
А кто знает, уже починили спреды?
Все аргументы в стиле «1 кг сельдерея в день снижает риск образования бляшек на 14%!»
Во-втором примере ничего не изменилось. Все также непонятно какие методы оплаты доступны. Если использовать статическую типизацию, то почему бы не делать это до конца?
Скорее всего минусы не за комментарий в целом, а за упоминание JSDoc, который многие не любят, особенно в противовес наглядных типов, которые так и так пишутся, а jsdoc еще надо заставить себя написать
То есть функция которой требуется документация хуже чем которой не требуется, даже если они делают одно и тоже.
То есть функция которой требуется документация хуже чем которой не требуется, даже если они делают одно и тоже.
Прити вдохновила, добавлю пять копеек: Flow + tcomb = типизированный JavaScript.
Преимущество № 2: У вас появляется живая документация
Является ли quote числом? Или логическим значением? Платёжный метод — это объект?
Венгерская нотация?
Все преимущества сводятся к одному — воможность четкого (гарантированно верного) автоматического анализа кода, по сути эмуляция компиляции (TypeScript). По сути это уже не скриптинг. И это очень большое подспорье как минимум в случае больших проектов и распределенных команд.
Мой доклад на NodeJS SPB: «Нужен ли мне TypeScript» как раз по теме статьи.
Видео: https://youtu.be/Yxsf06JSGCE?t=3h9m49s ((с 3:09:49)
Презентация: https://easy-deep-learning.github.io/types-sugar-in-javascript/
Если кратко: есть более полезные практики, которые имеет смысл внедрить ДО «статической» типизации:
Видео: https://youtu.be/Yxsf06JSGCE?t=3h9m49s ((с 3:09:49)
Презентация: https://easy-deep-learning.github.io/types-sugar-in-javascript/
Если кратко: есть более полезные практики, которые имеет смысл внедрить ДО «статической» типизации:
- покрытия тестами
- соглашение по стилю кода, особенно наименованию переменных
- jsDoc — Совершенные редакторы могут проверять код по jsdoc. При этом, на мой взгляд, код не загрязняется визуально «типизацией» (кавычки, потому что «типизация» в JS — только сахар.
Сомнения адепта TS:type Paypal = { id: number, type: 'Paypal' }; type CreditCard = { id: number, type: 'CreditCard' }; type Bank = { id: number, type: 'Bank' }; type PaymentMethod = Paypal | CreditCard | Bank;
type PaymentMethod = { id: number, type: 'Paypal' | 'CreditCard' | 'Bank' };
Не?
Sign up to leave a comment.
Зачем использовать статические типы в JavaScript? (Преимущества и недостатки)