TypeScript - Union типы и TypeGuards
Сегодня мы разберём Type Guards в TypeScript, а перед этим познакомимся с Union типами и сужением типов.
⚡ Мои курсы
Все мои курсы: purpleschool.ru
Курсы для тех, кто не из России: www.udemy.com/user/alariplay/
Telegram канал с полезными советами: t.me/purple_code_channel
🔗 Полезные ссылки
Документация по TypeGuards: www.typescriptlang.org/docs/h...
Разделы видео:
0:00 - Введение
0:26 - Union типы
4:14 - Сужение типов
6:23 - TypeGuards
9:35 - Заключение
Пікірлер: 39
Когда я понял почему функция возврата должна возвращать тип res is Success. Я почувствовал себя тем парнем из мема, у которого мозг взрывается от осознания космоса. Часто сталкивался с проблемой, что при создании условия, которое должно распределять чем именно является значение, тайпскрипт всё равно продолжал ругаться, будто не замечал условия. Теперь понял как это должно было выглядеть на самом деле. Благодарю вас
@PurpleSchool
2 жыл бұрын
😂
@alexstepanchhuk683
5 ай бұрын
Согласен - отличное объяснение, может даже лучше, чем в документации 😂
Спасибо, качественно! 👌
@PurpleSchool
2 жыл бұрын
Пожалуйста)
Thanks a lot
@PurpleSchool
4 ай бұрын
👍
Ура, новое видео!
@PurpleSchool
2 жыл бұрын
Не за что)
Очен полезные детали и хороши передача, от меня Subscribe
@PurpleSchool
Жыл бұрын
Спасибо 👍
Качественно
@PurpleSchool
2 жыл бұрын
Спасибо!
спасибо за видео, так скоро и половину материала из курса на юдеми переснимете по тс
@PurpleSchool
2 жыл бұрын
Я стараюсь дополнять основные сложные моменты)
6:16 - 6:23 Вся ценность видео.
спасибо пупсик
Tnx
@PurpleSchool
Жыл бұрын
Welcome!
Спасибо за урок) По идее, ничего ж не должно поменяться, если вместо res is Success использовать просто boolean .... в функции process все также будет отрабатывать. В чем тогда преимущество использования res is Success ?
@PurpleSchool
2 жыл бұрын
Как раз в это отличие, так как во многих случаях boolean работать не будет. Для этого как раз и есть такое описание типов.
Го модуль в юдеми по vim и его кастомизации!
@PurpleSchool
2 жыл бұрын
Следующее видел будет как раз по Vim)
Можешь скинуть свой конфиг неовима, пожалуйста? Уж очень заходит, как тут всё выглядит
@PurpleSchool
9 ай бұрын
Тут есть разбор kzread.info/dash/bejne/fn-i16uaqsjPfZc.html
@shadowplay1211
9 ай бұрын
@@PurpleSchool спасибо🙏
Через typeof нельзя проверить массив и тем более кастомный тип
@PurpleSchool
2 жыл бұрын
Да, их надо через isArray или свойство как я показываю в видео. Typeof только для простых типов
@user-mn3ic2ct8d
2 жыл бұрын
Это обычный предикат, тут как собака увидев баобаб!
Не очень понял, все-таки чем отличаются type guard от сужения.
@PurpleSchool
2 жыл бұрын
TypeGuard это по сути функция, которая реализует сужение типов.
где ваши ученики ?)))
@PurpleSchool
2 жыл бұрын
Ссылки на канал в Telegram и сайт школы в описании. Вопросы обычно задают в чате школы или Tg. purpleschool.ru
в interface можно указывать конкретные значения вместо типов: interface Success { res: 'success' } ??? почему бы вместо res не написать просто r, это ещё универсальней (может быть): result, response, request, ...
instanceof же есть для проверки типа ,зачем писать функции проверки типов,мне не ясно,а для проверки строк, чисел и т.д. есть уже функции проверки
@PurpleSchool
2 жыл бұрын
Instanceof проверяет, принадлежит ли объект к определённому классу. То есть без инициализации класса он всегда будет false. Это частая ошибка проверок. Если мы работаем с объектом, то проверять можно лишь по свойствам.
@user-sc7by4nv1f
2 жыл бұрын
@@PurpleSchool спасибо за ответ
@PurpleSchool
2 жыл бұрын
@@user-sc7by4nv1f не за что!)
const isResSuccess = (res: ResType): res is Success => res.res === 'success' ? Зачем тут if вообще? res.res === 'success' и так вернёт либо true либо false