Size: a a a

JavaScript.Ninja

2021 July 25

OD

Oleh Diian in JavaScript.Ninja
а можно для тупых? что здесь плохого или хорошого?
источник

👀Ш

👀 Дима Шаповалов... in JavaScript.Ninja
первая строка говорит, что объект такого типа может иметь любое поле с любым типом
источник

A

Alexander in JavaScript.Ninja
Спасибо, Илья! Весьма аргументировано.
Честно говоря я еще на заре развития этого языка не очень верил в его силу, потому как JS таки да - гибкий и динамический язык что по сути может являтся преимущественным инструментом для решения комплексных задач, к которому нужно привыкнуть и выработать свой подход, а не искать решения в ограничении данного языка путем принудительной типизации (что звучит как нонсенс).

Но все же я вижу пользу тайпскрипта для некоторых участков JS кода - которые трудно поддаются исследованию кода / intellisense / рефакторингу в тех местах где происходит мутация структурированных данных - здесь как раз нам могут помочь DTS файлы.
источник

VK

Vladimir Klimov in JavaScript.Ninja
Если нету типов - вам нужны явно описанные контракты, что-то типа clojure spec
Иначе этот код поддерживать просто больно
Вам приходит в функцию объект
Какой у него тип? Черт его знает какой
источник

VK

Vladimir Klimov in JavaScript.Ninja
Просто выбросить тс без привнесения практик, о которых шла речь в докладе - вредно
источник

A

Alexander in JavaScript.Ninja
ну вот я и говорю - DTS в помощь
источник

OD

Oleh Diian in JavaScript.Ninja
и? вы б сделали так?
interface Serializable{
 toJSON: () => string
}
источник

VK

Vladimir Klimov in JavaScript.Ninja
И какой смысл тогда?
Поддерживать код надо уже на двух языках?)
источник

A

Alexander in JavaScript.Ninja
А смысл такой: поддержка может быть только тех мест - где реально происходят сложные мутации, где достаточно все очевидно - можно не тратить время
источник

👀Ш

👀 Дима Шаповалов... in JavaScript.Ninja
так и сделали, и увидели приличное количество ошибок  по всему проекту
источник

VK

Vladimir Klimov in JavaScript.Ninja
Очевидность не объективна
источник

A

Alexander in JavaScript.Ninja
а должна?
источник

OD

Oleh Diian in JavaScript.Ninja
какие именно? то что ключи не описаны?
источник

OD

Oleh Diian in JavaScript.Ninja
не пойму
источник

VK

Vladimir Klimov in JavaScript.Ninja
А как вы определите что очевидно, а что нет?)
источник

A

Alexander in JavaScript.Ninja
то, что считается простым и понятным
источник

VK

Vladimir Klimov in JavaScript.Ninja
Это все субъективно
Я пишу сегодня код - он мне прост и понятен
Завтра мой коллега не поймет ничего)
"- почему типов нет?
- так тут же все просто и понятно"
😁
источник

VK

Vladimir Klimov in JavaScript.Ninja
Тайпскрипт не нужен, когда есть чем поношенно его заменить, имхо
А если нету - то лучше уж с ним, чем без
источник

A

Alexander in JavaScript.Ninja
Все верно, там где все просто и понятно и нет причин для рефакторинга - здесь очевидно все просто и понятно. Вконце концов есть хороший инструмент - код ревью, где все участники принимают участие в написании кода.

А ваш коллега пусть скиллы качает.
источник

VK

Vladimir Klimov in JavaScript.Ninja
Смешнее всего когда лбди пишут кривой код, тс на них справедливо ругается, а они: "тьфу, тупой тайпскрипт, впихеу тут any")
источник