тут непонятно какую задачу вы этим хотите решить. ведь нет такого состояния что вы точно знаете что вернется при ошибке.
окей вы однажды написали catch блок и уточнили тип ошибки.
дальше код изменился, неважно при вызове или где то сбоку (что особенно весело). И тут считай вы сам себе враг, потому что тайпскрипт не предложит отрефакторить catch он просто будет думать что все осталось как прежде. а на самом деле теперь прилетает ошибка совсем другого типа. тайпскрипт не помогает, и я пытаюсь понять в чем тогда профит
да, я совсем не спорю, что в Promise.reject можно засунуть все что угодно. и поэтому привел пример, что в eslint есть правило, которое разрешает использовать Promise.reject только с объектами типа Error и производных (что для меня кажется очень правильным)
вы абсолютно правы, прилететь может всё что угодно. возможно, в будущем появится strict флаг в конфиге, чтобы ошибки в catch блоках были типа unknown по умолчанию. сейчас в этом месте не хватает строгости.
я в домашних проектах всегда включаю strict: true, так что буду рад такой опции
на самом деле ошибку невозможно типизировать. представьте http запрос с json ответом. вы можете получить ошибку с сетью, а можете получить ошибку того что пришел не json и распарсить результаты не вышло. в этих случаях вы получите разные ошибки. по хорошему нужно чтобы все ошибки в catch блоках были типа unknown как это (опционально) предложили делать в конструкции try-catch, что будет семантически правильно. но в целом достаточно .catch(err: Error) писать
поэтому eslint например требует что если используется явно Promise.reject(err) то err должно быть что-то Error-подобное.
Если честно, приложения попадаются разные. Бывают хорошие, бывают как обычно. бывает JQuery скрипты по 2к+ строк. Зачастую выправить всё нереально, поэтому всегда приятно видеть хороший код и хорошую структуру проекта.
Тут я абсолюнто согласен. Мне повезло, что все обошлось одной строкой. Но в репозитории куча полезных и значимых пул-реквестов, которые висят годами. Ребята и сами признали в переписке со мной, что плохо контактируют с внешними разработчиками. Но лучше от этого не становится.
В моей истории нет четкого алгоритма, как с этим бороться, но я бы продолжил писать напрямую на почту, пробовал бы продвигать и дальше. Очевидно, что комментариев в пул-реквестах не хватает, чтобы обратить достаточно внимания на ту или иную проблему.
тут непонятно какую задачу вы этим хотите решить. ведь нет такого состояния что вы точно знаете что вернется при ошибке.
окей вы однажды написали catch блок и уточнили тип ошибки.
дальше код изменился, неважно при вызове или где то сбоку (что особенно весело). И тут считай вы сам себе враг, потому что тайпскрипт не предложит отрефакторить catch он просто будет думать что все осталось как прежде. а на самом деле теперь прилетает ошибка совсем другого типа. тайпскрипт не помогает, и я пытаюсь понять в чем тогда профит
да, я совсем не спорю, что в Promise.reject можно засунуть все что угодно. и поэтому привел пример, что в eslint есть правило, которое разрешает использовать Promise.reject только с объектами типа Error и производных (что для меня кажется очень правильным)
вы абсолютно правы, прилететь может всё что угодно. возможно, в будущем появится strict флаг в конфиге, чтобы ошибки в catch блоках были типа unknown по умолчанию. сейчас в этом месте не хватает строгости.
я в домашних проектах всегда включаю strict: true, так что буду рад такой опции
на самом деле ошибку невозможно типизировать. представьте http запрос с json ответом. вы можете получить ошибку с сетью, а можете получить ошибку того что пришел не json и распарсить результаты не вышло. в этих случаях вы получите разные ошибки. по хорошему нужно чтобы все ошибки в catch блоках были типа unknown как это (опционально) предложили делать в конструкции try-catch, что будет семантически правильно. но в целом достаточно .catch(err: Error) писать
поэтому eslint например требует что если используется явно Promise.reject(err) то err должно быть что-то Error-подобное.
В моей истории нет четкого алгоритма, как с этим бороться, но я бы продолжил писать напрямую на почту, пробовал бы продвигать и дальше. Очевидно, что комментариев в пул-реквестах не хватает, чтобы обратить достаточно внимания на ту или иную проблему.