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

  • @ibragimdaron4053
    @ibragimdaron40532 жыл бұрын

    Когда я понял почему функция возврата должна возвращать тип res is Success. Я почувствовал себя тем парнем из мема, у которого мозг взрывается от осознания космоса. Часто сталкивался с проблемой, что при создании условия, которое должно распределять чем именно является значение, тайпскрипт всё равно продолжал ругаться, будто не замечал условия. Теперь понял как это должно было выглядеть на самом деле. Благодарю вас

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    😂

  • @alexstepanchhuk683

    @alexstepanchhuk683

    5 ай бұрын

    Согласен - отличное объяснение, может даже лучше, чем в документации 😂

  • @user-ur1dg2hj9z
    @user-ur1dg2hj9z2 жыл бұрын

    Спасибо, качественно! 👌

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    Пожалуйста)

  • @cheerfulday1873
    @cheerfulday18734 ай бұрын

    Thanks a lot

  • @PurpleSchool

    @PurpleSchool

    4 ай бұрын

    👍

  • @Max.Kozlov
    @Max.Kozlov2 жыл бұрын

    Ура, новое видео!

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    Не за что)

  • @merabc
    @merabc Жыл бұрын

    Очен полезные детали и хороши передача, от меня Subscribe

  • @PurpleSchool

    @PurpleSchool

    Жыл бұрын

    Спасибо 👍

  • @maxpapirovnyk4304
    @maxpapirovnyk43042 жыл бұрын

    Качественно

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    Спасибо!

  • @user-sc7by4nv1f
    @user-sc7by4nv1f2 жыл бұрын

    спасибо за видео, так скоро и половину материала из курса на юдеми переснимете по тс

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    Я стараюсь дополнять основные сложные моменты)

  • @wwiiktor
    @wwiiktor Жыл бұрын

    6:16 - 6:23 Вся ценность видео.

  • @siparat842
    @siparat842 Жыл бұрын

    спасибо пупсик

  • @fuad2069
    @fuad2069 Жыл бұрын

    Tnx

  • @PurpleSchool

    @PurpleSchool

    Жыл бұрын

    Welcome!

  • @vadimniziev5489
    @vadimniziev54892 жыл бұрын

    Спасибо за урок) По идее, ничего ж не должно поменяться, если вместо res is Success использовать просто boolean .... в функции process все также будет отрабатывать. В чем тогда преимущество использования res is Success ?

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    Как раз в это отличие, так как во многих случаях boolean работать не будет. Для этого как раз и есть такое описание типов.

  • @user-mn3ic2ct8d
    @user-mn3ic2ct8d2 жыл бұрын

    Го модуль в юдеми по vim и его кастомизации!

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    Следующее видел будет как раз по Vim)

  • @shadowplay1211
    @shadowplay12119 ай бұрын

    Можешь скинуть свой конфиг неовима, пожалуйста? Уж очень заходит, как тут всё выглядит

  • @PurpleSchool

    @PurpleSchool

    9 ай бұрын

    Тут есть разбор kzread.info/dash/bejne/fn-i16uaqsjPfZc.html

  • @shadowplay1211

    @shadowplay1211

    9 ай бұрын

    @@PurpleSchool спасибо🙏

  • @maksimrugalov3158
    @maksimrugalov31582 жыл бұрын

    Через typeof нельзя проверить массив и тем более кастомный тип

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    Да, их надо через isArray или свойство как я показываю в видео. Typeof только для простых типов

  • @user-mn3ic2ct8d

    @user-mn3ic2ct8d

    2 жыл бұрын

    Это обычный предикат, тут как собака увидев баобаб!

  • @dmitryshkinder1543
    @dmitryshkinder15432 жыл бұрын

    Не очень понял, все-таки чем отличаются type guard от сужения.

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    TypeGuard это по сути функция, которая реализует сужение типов.

  • @cranebird1467
    @cranebird14672 жыл бұрын

    где ваши ученики ?)))

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    Ссылки на канал в Telegram и сайт школы в описании. Вопросы обычно задают в чате школы или Tg. purpleschool.ru

  • @weynemeynen
    @weynemeynen Жыл бұрын

    в interface можно указывать конкретные значения вместо типов: interface Success { res: 'success' } ??? почему бы вместо res не написать просто r, это ещё универсальней (может быть): result, response, request, ...

  • @user-sc7by4nv1f
    @user-sc7by4nv1f2 жыл бұрын

    instanceof же есть для проверки типа ,зачем писать функции проверки типов,мне не ясно,а для проверки строк, чисел и т.д. есть уже функции проверки

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    Instanceof проверяет, принадлежит ли объект к определённому классу. То есть без инициализации класса он всегда будет false. Это частая ошибка проверок. Если мы работаем с объектом, то проверять можно лишь по свойствам.

  • @user-sc7by4nv1f

    @user-sc7by4nv1f

    2 жыл бұрын

    @@PurpleSchool спасибо за ответ

  • @PurpleSchool

    @PurpleSchool

    2 жыл бұрын

    @@user-sc7by4nv1f не за что!)

  • @adriansergeev2900
    @adriansergeev2900 Жыл бұрын

    const isResSuccess = (res: ResType): res is Success => res.res === 'success' ? Зачем тут if вообще? res.res === 'success' и так вернёт либо true либо false

Келесі