Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 September 03

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
В итоге что мы получаем: чтобы увидеть что код ненадежен и фактически ошибочен, там где человек написал type Keys<T> = keyof T вам надо знать:
- как работает ко- и контрвариантность
- что keyof контрвариантен
- что у тайпскрипта distributed conditional types так работают с дженериками и юнионами

И вот собственно о чем я и говорю
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
А это простая строчка и простая операция
источник

BB

Bogdan Bida in NodeUA - JavaScript and Node.js in Ukraine
Хах! Забавно
Впервые увидел именно реально косяк а не просто слова что тс плохой потому что так и так

Действительно интересно

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

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Я считаю что тесты защищают проект от затупов и вникания гораздо лучше
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
потому что тесты описывают бизнес-правила заложенные в компоненты
источник

D

Dmitry 🤨 ç in NodeUA - JavaScript and Node.js in Ukraine
Опять же. Что мешает писать и тесты и строго типизированный код, я не понимаю?
источник

BB

Bogdan Bida in NodeUA - JavaScript and Node.js in Ukraine
Мне ужасно не везёт попадать на проекты без тестов или с малейшим их наличием и то для галочки
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
А учитывая номинальную типизацию тайпскрипта -  я вот к примеру пишу с branded types чтоб в мой тип   Cents который число нельзя было присвоить тип number, но кто еще так делает?
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Никто не мешает. Просто когда есть тесты ценность тайпскрипта резко падает для меня
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
А я люблю уважать время и деньги своего заказчика )
источник

МЗ

Михаил Золотарёв... in NodeUA - JavaScript and Node.js in Ukraine
Но разве это отличается от того, что новичок напишет typeof x === 'number' думая, что это отсечет NaN в чистом жс?
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
да, объемом необходимых знаний
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
то что typeof NaN 'number' - это основы языка
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
А здесь, как мы видим, по диалогам, даже про ко- и контр- вариантности люди не сильно задумываются, к сожалению
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
хотя это важные основы любой системы типов
источник

МЗ

Михаил Золотарёв... in NodeUA - JavaScript and Node.js in Ukraine
Ну так может TS - не для новичков?
Ты получаешь нужный объем знаний, дальше узнаешь, что вот такая работа с юнионами - это основа языка TS и для тебя этот код не представляет проблемы.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
проблема в том, что когда ты это узнаешь, ты параллельно узнаешь кучу мест, где ТС не может тебе помочь
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
покажу просто смешной скрин сегодня из чатика моего патреона (автор не я)
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Переслано от Denis Zavershinskiy
TS прекрасен 🤩 (https://www.solidjs.com/examples/todos)
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
и поверьте, автор solid.js так типизировал стору не потому что он не знает TS :)
источник