Pull to refresh
14
Karma
0
Rating
Sergey Nikitin @n-srg

Typescript | Javascript | Angular | React | Svelte

В TypeScript 4.0 наконец появилось то, чего я очень ждал

тут непонятно какую задачу вы этим хотите решить. ведь нет такого состояния что вы точно знаете что вернется при ошибке.
окей вы однажды написали catch блок и уточнили тип ошибки.
дальше код изменился, неважно при вызове или где то сбоку (что особенно весело). И тут считай вы сам себе враг, потому что тайпскрипт не предложит отрефакторить catch он просто будет думать что все осталось как прежде. а на самом деле теперь прилетает ошибка совсем другого типа. тайпскрипт не помогает, и я пытаюсь понять в чем тогда профит

В TypeScript 4.0 наконец появилось то, чего я очень ждал

да, я совсем не спорю, что в Promise.reject можно засунуть все что угодно. и поэтому привел пример, что в eslint есть правило, которое разрешает использовать Promise.reject только с объектами типа Error и производных (что для меня кажется очень правильным)


вы абсолютно правы, прилететь может всё что угодно. возможно, в будущем появится strict флаг в конфиге, чтобы ошибки в catch блоках были типа unknown по умолчанию. сейчас в этом месте не хватает строгости.


я в домашних проектах всегда включаю strict: true, так что буду рад такой опции

В TypeScript 4.0 наконец появилось то, чего я очень ждал

на самом деле ошибку невозможно типизировать. представьте http запрос с json ответом. вы можете получить ошибку с сетью, а можете получить ошибку того что пришел не json и распарсить результаты не вышло. в этих случаях вы получите разные ошибки. по хорошему нужно чтобы все ошибки в catch блоках были типа unknown как это (опционально) предложили делать в конструкции try-catch, что будет семантически правильно. но в целом достаточно .catch(err: Error) писать


поэтому eslint например требует что если используется явно Promise.reject(err) то err должно быть что-то Error-подобное.

Чему меня научил мой коммит в Angular

Если честно, приложения попадаются разные. Бывают хорошие, бывают как обычно. бывает JQuery скрипты по 2к+ строк. Зачастую выправить всё нереально, поэтому всегда приятно видеть хороший код и хорошую структуру проекта.

Чему меня научил мой коммит в Angular

Тут я абсолюнто согласен. Мне повезло, что все обошлось одной строкой. Но в репозитории куча полезных и значимых пул-реквестов, которые висят годами. Ребята и сами признали в переписке со мной, что плохо контактируют с внешними разработчиками. Но лучше от этого не становится.

В моей истории нет четкого алгоритма, как с этим бороться, но я бы продолжил писать напрямую на почту, пробовал бы продвигать и дальше. Очевидно, что комментариев в пул-реквестах не хватает, чтобы обратить достаточно внимания на ту или иную проблему.

Information

Rating
Does not participate
Location
Amsterdam, Noord-Holland, Нидерланды
Registered
Activity