Дженерики в TypeScript с нуля: Generic, Extends, Дефолтные Параметры + Примеры Использования.
HTML-код
- Опубликовано: 12 май 2024
- Разбираем с одной из сложнейших тем в TypeScript - дженериками. Generic - это мощный инструмент, позволяющий описывать типа, способные работать с различными типами и структурами данных. Таймкоды:
00:00 - Зачем нужны generic типы.
01:47 - Что такое generic в TypeScript. Синтаксис дженерик типов.
02:45 - Как работают generic типы.
05:38 - Создаем простой generic для загрузки данных по API.
07:18 - Пример функции generic для работы с массивами.
09:11 - Пример функции generic для работы с объектами.
10:20 - Встроенные типы generic на примере Promise, Array, Record.
12:04 - Generic + extends. Простой пример.
13:05 - Generic + class + extends. Пример с классом.
16:28 - Generic + object. Получаем значение по ключу.
18:18 - Generic + object. Получаем ключ по значению.
21:38 - Типизация функций с множеством дженериков.
23:49 - Значения по умолчанию для generic.
24:35 - Создание собственного дженерика, аналога React.FC.
Приятного просмотра! Буду благодарен за поддержку в виде комментария и лайка!
👉 Менторство и поддержка: / wisejs
✔️Если хочешь изучать программирование со мной, не забудь подписаться :)
ruclips.net/channel/UCOxq...
✔️Мой телеграм канал: t.me/joinchat/RVq-cmt6n1SJRS7Z
Подписывайтесь на мой канал, следите за новыми полезными роликами, пишите комментарии и приятного просмотра!
Определение понятий взяты из книги: typescript-definitive-guide.r...)
#generic #дженерики #typescript #тайпскрипт
Все свои вопросы касательно дженериков оставляй в комментариях 👇, тут же будем их разбирать.
хороший видосик, освежил немного память, спасибо тебе за твой труд...
Я не понимаю,почему на этом канале так мало подписчиков,по-моему лучше что я видел в жизни,это ролики с канала wise.js.Как всегда 100/10 спасибо за то что вы есть!!!!!!!
Случайно узнал о канале пару дней назад. Подтверждаю, что очень хорошо объясняются сложные темы. Сразу подписался. Я пол жизни фронт-эндом занимаюсь, но, например, лучшего объяснения TS я не находил пока. А его-то я как раз и упустил в свое время.
Терпение. Скоро будет много) канал то топовый
Тот случай, когда поставив лайк на первых минутах, через какое-то время неоднократно рука тянется еще ставить и ставить лайки, чтобы отблагодарить)
Спасибо за твой труд. Спасибо за большое количество реальных примеров!
Ахрененное видео, такой разнообразного функционала по дженерикам, даже в хороших платных курсах нет.
Спасибо, старался покрыть все базовые возможности :)
@@wisejs Спасибо большое 💯🔥
Шикарный обзор! Спасибо. Все собрано, систематизировано и компактно изложено!
Огонь. Все по полочкам разложено. Огромное спасибо за такой полезный урок.
Огромное спасибо за объяснения)
Дженерики стали для меня намного понятнее)
Все четко, ясно и с душой! Как всегда!
Великолепное объяснение!!! Большая благодарность с низким поклоном!
Спасибо! Очень доступно изложена тема, которую не так просто понять. Продолжайте, вы делаете полезное дело!
Спасибо автору!!!
Замечательные уроки 👍👍👍
Спасибо. На примерах понять дженерики много проще.
Спасибо за очередное видео про TypeScript Generic, Extends
Просто супер объяснение. За разбор примера из официально документации отдельный респект👍
Спасибо за видос. Отличные примеры
Урок отличный, примеры прикладные!
Вот это вообще офигенное видео, ни у кого такого не видел!
Канал огонь! Спасибо за контент!!!
Хороший урок, спасибо за труд!
Очень доступно объяснил, спасибо большое. Ждём ещё разборы тем по TS , потому что мало толковых роликов , везде рассказывают самые основы и например те же дженерики бегло объясняют.
Очень крутой ролик по дженерики!
Теперь его всем советую)
Просто супер! Красава. Хотим больше по TS но желательно без привязок к реакту и пр. )
You are the best! There were great snippets,understandable. Thank you;)
Наконец-то доходчивое объяснение. Спасибо!
Спасибо за просто невероятное объяснение этих дженериков)
Контент - ТОП! Спасибо большое!
Без комментариев, просто 🔥🔥 🔥
Однозначно лайк, всё разжевал - спасибо. Теперь всё стало понятно)
ты мега крут, все четко и понятно, куча примеров, спасибо за твой труд...
Спасибо 😀
@@wisejs Согласен, реально топ, побольше бы от тебя видосов!!!
Спасибо!!!! все понятно обьсняешь!!
всё доступно и понятно. спасибо
Спасибо огромное! Хоть у тебя есть такой контент оказывается
Наконец-то понял. Низкий поклон автору
Спасибо за офигенное объяснение
Это баааза) очень, очень хорошее объяснение, удачи в блоге!
Очень полезный урок, спасибо 🙌
хорошее руководство по дженерикам: лайк, подписка)
Сразу видно, когда разработчик видяху делае.... Лайк
Спасибо, за видео! Пожалуй это лучшее и доступное объяснение которое я видел)
У меня много практических вопросов поднакопилось к Generic. Это видео их полностью закрыло. Спасибо огромное!
Отличное видео
Спасибо за объяснения
Вот что значит человек постарался и подготовил материал. Знания залетают как конфетки с чаем)
Видос - шикардос, держи лайкос :)
Аффтор молоток. Видео качественное.
Лайк, подписка! ❤ Спасибо за твой труд!
Ох, действительно сложновато понять, если использовать дженерики на максималках. Надо пробовать понемногу юзать их) Спасибо, очень чётко рассказал!
Самый лучший видос по дженерикам.
Отличный видос, так держать.
Спасибо тебе добрый человек )
Отличное объяснение!
Дженерики такая неоднозначная вещь, пересмотрел почти все русскоязычные видео на эту тему.
Ты сделал самое лучшее объяснение, как же я тебе благодарен, теперь как-то по полочкам уложилось
Дядя, это балдеж) обьясняешь понятно и кратко, мне б такого ментора 😂😂
Спасибо за подробный разбор и примеры! Мне очень помогло.
рад, что мои видео приносят пользу)
Огромное спасибо!! Третий или четвертый раз пытаюсь понять про дженерики и только из вашего видео поняла
Это видео...просто клад. Спасиб)
На курсах теорию прохожу, понял частично. Видео посмотрел, понял практически все. Осталось попрактиковаться.
Топовое видео!
Лучшее объяснение дженериков.
Cупер контент, изи! Асалам алекум трампопом👏🏻
посмотрел несколько видосов про Женерики , этот самый збс. Жирный лойс!
И вообще парень толковый
крутяк видос! юзаю как справочник!
Тот случай, когда понял, что все оказалось так просто, что странно, что не допер раньше. Спасибо. Может про всякое ООП в тайпскрипте расскажите.
Очень крутое объяснение спасибо
топ! это самое полезное видео, которое я просмотрел за этот год
потрясающие ролики про тсу!!! огромное спасибо автору. так редко бывает чтобы и подано хорошо и материал качественный и не простой, но и рассказано так что понятно. даже сам себя умнее чувствуешь пока смотришь - а это признак большого таланта автора который умеет так объяснять
Wise, ты один из лучших! Typescript, generic)))) 🥳🥳🥳
Спасибо за примеры из реальной жизни. Когда читаю статьи и документацию, там одна синтетика
Поставил лайк, не только из-за того что контент топ, но и за то, что нет ничего что отвлекало бы: музыки, лишних вставок и т.п.
Тот самый момент, когда тебя не просили, но ты поставил лайк, оставил комментарий и подписался).
Удачи!
Спасибо за видео.
Это лучшее видео про джинерики которое я видел
Большое спасибо!
Красавчик, рассказал четко, подписался лайк прожал, молодец! =)
Лайк, наконец всё понятно
Топ контент, успехов !
На 7:00, можно было добавить значение по умолчанию для Т, тогда и без уточнения можно передавать
Чувак, спасибо!!
Спасибо!
Последний пример особенно топ) не так давно начал изучать реакт и пытаюсь разобраться в типизации реакта) было интересно узнать на реализацию :FC функционального компонента в реакте.
спасибо большое.
прям очень качественный материал
Спасибо за комментарий!
Видос огонь! 🔥🔥🔥
🧯🧯🧯
Не могу, начал изучать TP, думал, что дженерики это что то новое, крутое, а это просто шаблонный тип данных. К автору ничего не имею, красава, ролик хороший. Делай еще, ты красава.
Good job.
Спасибо бро! Твой канал определенно один из лучший русскоязычных по тематике. Рекламу бы какую то нормальную сделать, чтобы о канале узнало побольше людей. Тогда успех обеспечен.
Спасибо за поддержку, бро!)
дякую велике, це значно зрозуміліше ніж дока
бомба видос)) извините меня все тут, но не могу я не сказать про ключЬ!))
век живи - век учись))))
12:55
Тут дженерик не особо-то и нужен =)
function len(collection: {length: number}) {
return collection.length;
}
len([1, 2]);
len('hello');
Тоже работает
Сколько бы не пытались уйти от динамической типизации, в итоге к ней и вернулись..
Мегаполезное видео, просто о сложном!!!
Спасибо, рад что понравилось)
жесть)
Наверно, это самое ценное видео по дженерикам на русском языке. Огромное спасибо) лайк + колокольчик 👍
А есть ли какие нибудь сайты с задачами на типизацию? Потому что вроде типизация с дженериками это просто, но как только начинаешь что то делать сам, бываешь сидишь в ступоре, потому что нет какого то понимания что ли. Вот хотел при помощи задачек набить понимание.
По теме видео, спасибо за науку, конечно, но один момент я тут не увидел. И понять его не могу.
Как и, главное, Когда нужно применять generic при вызове функции.....
Пример из React: const [value, setValue] = useState(0)
10:12, это операция пересечения, а не объединение
надо больше вариаций
там еще Return type какой то завезли все все другое новое рассказать.
Это уже conditional types + infer. Сделаю по ним видео.
на 8:46 немного непонятно: почему TS разрешает передать в функцию массив содержащий два разных типа?
Потому что тип указан как любой массив. Там хоть сотня разных типов может быть.
@@wisejs ну я это понимаю как массив элементов типа T.
Дело в том, что мой основной язык - это Java, и там такие фокусы сделать нельзя. Там если массив / коллекция объявлены как T[] / List, то положить туда что-то, что не расширяет само T (ну или само T) нельзя
пишу на js уже несколько лет, последний год в своем проектке использую ts но не на 100%, но даже так получаю много пользы от него, НО блин на 21 минуте какаято жесть как по мне, че так усложнять то?
Расскажи про утилиты тс
Будет.
+
🫡
👉 Этот комментарий создан в качестве уважения автору и для продвижения его канала.
1. можно ли обявлять тайп алиасы с дженериками?
Допусти:
type UserFactory = FactoryClass;
const userFactory: UserFactory = ....
2. Использовать generic react компонеты в разных units:
React.ComponentProps ?
1. Можно.
2. Можно, если в этом есть смысл.
@@wisejs как, если TS это не пропускает.
@@allusio что не пропускает?
@@wisejs использование дженериков в объявлении алиасов ну и использование типов с дженериками, кроми как объявление типа переменной
@@allusio давайте примеры кода, что не работает. Сложно понять что именно не работает.
После просмотра этого видео, мой мозг сгорел