Когда я понял почему функция возврата должна возвращать тип res is Success. Я почувствовал себя тем парнем из мема, у которого мозг взрывается от осознания космоса. Часто сталкивался с проблемой, что при создании условия, которое должно распределять чем именно является значение, тайпскрипт всё равно продолжал ругаться, будто не замечал условия. Теперь понял как это должно было выглядеть на самом деле. Благодарю вас
Спасибо за урок) По идее, ничего ж не должно поменяться, если вместо res is Success использовать просто boolean .... в функции process все также будет отрабатывать. В чем тогда преимущество использования res is Success ?
в interface можно указывать конкретные значения вместо типов: interface Success { res: 'success' } ??? почему бы вместо res не написать просто r, это ещё универсальней (может быть): result, response, request, ...
Instanceof проверяет, принадлежит ли объект к определённому классу. То есть без инициализации класса он всегда будет false. Это частая ошибка проверок. Если мы работаем с объектом, то проверять можно лишь по свойствам.
const isResSuccess = (res: ResType): res is Success => res.res === 'success' ? Зачем тут if вообще? res.res === 'success' и так вернёт либо true либо false
Когда я понял почему функция возврата должна возвращать тип res is Success. Я почувствовал себя тем парнем из мема, у которого мозг взрывается от осознания космоса. Часто сталкивался с проблемой, что при создании условия, которое должно распределять чем именно является значение, тайпскрипт всё равно продолжал ругаться, будто не замечал условия. Теперь понял как это должно было выглядеть на самом деле. Благодарю вас
😂
Согласен - отличное объяснение, может даже лучше, чем в документации 😂
Спасибо, качественно! 👌
Пожалуйста)
Очен полезные детали и хороши передача, от меня Subscribe
Спасибо 👍
Thanks a lot
👍
Ура, новое видео!
Не за что)
спасибо за видео, так скоро и половину материала из курса на юдеми переснимете по тс
Я стараюсь дополнять основные сложные моменты)
Качественно
Спасибо!
Tnx
Welcome!
6:16 - 6:23
Вся ценность видео.
спасибо пупсик
Го модуль в юдеми по vim и его кастомизации!
Следующее видел будет как раз по Vim)
Можешь скинуть свой конфиг неовима, пожалуйста? Уж очень заходит, как тут всё выглядит
Тут есть разбор ruclips.net/video/LKnuIazeiM4/видео.html
@@PurpleSchool спасибо🙏
Не очень понял, все-таки чем отличаются type guard от сужения.
TypeGuard это по сути функция, которая реализует сужение типов.
Спасибо за урок) По идее, ничего ж не должно поменяться, если вместо res is Success использовать просто boolean .... в функции process все также будет отрабатывать. В чем тогда преимущество использования res is Success ?
Как раз в это отличие, так как во многих случаях boolean работать не будет. Для этого как раз и есть такое описание типов.
где ваши ученики ?)))
Ссылки на канал в Telegram и сайт школы в описании. Вопросы обычно задают в чате школы или Tg.
purpleschool.ru
Через typeof нельзя проверить массив и тем более кастомный тип
Да, их надо через isArray или свойство как я показываю в видео. Typeof только для простых типов
Это обычный предикат, тут как собака увидев баобаб!
в interface можно указывать конкретные значения вместо типов: interface Success { res: 'success' } ???
почему бы вместо res не написать просто r, это ещё универсальней (может быть): result, response, request, ...
instanceof же есть для проверки типа ,зачем писать функции проверки типов,мне не ясно,а для проверки строк, чисел и т.д. есть уже функции проверки
Instanceof проверяет, принадлежит ли объект к определённому классу. То есть без инициализации класса он всегда будет false. Это частая ошибка проверок. Если мы работаем с объектом, то проверять можно лишь по свойствам.
@@PurpleSchool спасибо за ответ
@@АлександрЕлагин-м2ю не за что!)
const isResSuccess = (res: ResType): res is Success => res.res === 'success' ? Зачем тут if вообще? res.res === 'success' и так вернёт либо true либо false