Материал очень интересный и хорошо подаётся! Огромная благодарность за труд!
@fess85012 жыл бұрын
Спасибо большое, ты просто лучший. Несколько дней не мог понять что такое infer и зачем он нужен, кучу всего перечитал до этого. А тут меньше 10ти минут и до меня наконец-то дошло это и не только
@ТимурХрусталёв-ъ1е2 жыл бұрын
То же самое. Несколько раз читал докуму, периодически к ней возвращаясь, но так и не мог понять с этим infer... А тут всё доходчиво и понятно
@ОлегКолодезев2 жыл бұрын
Вот такие видео нужны на Ютубе, спасибо!
@wisejs2 жыл бұрын
Спасибо за поддержку!
@mykhailostepanishchev64722 жыл бұрын
Супер,лаконично и информативно,большое спасибо ! Условные типы,TypeScript, Infer, Conditional Types.
@wisejs2 жыл бұрын
спасибо за поддержку))
@olezhonnv3215 Жыл бұрын
Вот именно эти вещи в ТС я и считаю дичью! Нечитабельно, какие-то условия в условиях, на генериках, с кучей скобочек - оверинжиниринг с типами. Надо долго в это вникать, и научиться читать такие вложенности. И тут еще просто))) Я такие выкрутасы видел на ТС, чтомозг плавится.
@pavelgor8402 Жыл бұрын
хотел написать коммент, но ты опередил)
@Script6968 ай бұрын
Со временем ты станешь лучше к этому относиться Когда то и reduce вызвал к сложности, правда?
@Ildar-i3oАй бұрын
@@Script696руль в автомобиле тоже можно ногами крутить, а к педалям приделать палки и давить на них руками, всего лишь надо к этому привыкнуть.
@ВладимирЛевадный-ц1и2 жыл бұрын
Спасибо автору. Лучшее объяснение из всех, что видел. Человек понимает, что говорит.
@СофьяИванова-д6ж2 жыл бұрын
лучшие уроки на ютуб, что я находил
@gritsienkooleg3447 Жыл бұрын
Незаслуженно мало подписчиков, материал реально годный) Infer, conditional types - огонь ))
@АнтонСоколов-щ4ю Жыл бұрын
Хорошо рассказал про TypeScript Infer Conditional Types
@ТимурХрусталёв-ъ1е2 жыл бұрын
Братче, ты просто красава! Всё доходчиво и понятно, мне не хватало этого видео
@alexpro56702 жыл бұрын
Infer, typescript, conditional types - спасибо за примеры
@EvgSh-v4x7 ай бұрын
Спасибо, ибо это действительно сложно, мало где понятно и коротко объяснено, "спрашиваемо" на собесах, видано в кучках популярных либ, но не особо "используемо"))))))))) 👍👍👍👍👍👍👍👍👍👍👍👍👍👍
@valentineserebreanu398 Жыл бұрын
Респект за условные типы, все понятно. Но infer очень сумбурно объяснил, я все еще не понял, что именно оно делает, и как и зачем )
@EugenePetrov-l6l Жыл бұрын
Помнится были функции коротенькие и понятные. Но появился тайпскрипт и эти функции разрослись до 5 страниц. Но багов меньше нестало)
@olezhonnv3215 Жыл бұрын
Да, это правда.
@PutlerXLO Жыл бұрын
И это было охуенно! Приправил где нужно jsdoc и профит. Теперь кроме багов в коде еще и фиксить баги в типах, которые высосанные из пальца и пока проберешься среди дебрей дженериков, забудешь и логику кода, которой выходит иногда меньше, чем типов.
@ГенаПетров-н5ы2 жыл бұрын
Спасибо. Полезно когда нет возможности получить типы, но хочется полной типизации
@dimalukashenko4865 Жыл бұрын
Отличный урок, спасибо за труд!
@dmitriystoyanov9332 жыл бұрын
работаю с тайп скриптом месяцев 5, но такую навороченную жесть пока не умею писать) Максимум самые простые дженерики, Пики, Омиты, Экстенды и т.д.
@777KoroL7772 жыл бұрын
Я тоже месяц назад начал учить его, как ты говоришь эти моменты понятны а так как автор делает конечно сам сразу не додумаешься. И вообще тс призван облегчить жизнь разрабам, а в итоге я голову ломаю)))
@olezhonnv3215 Жыл бұрын
@@777KoroL777 Ага, потому что ТС - дичь!
@МаксимИсаев-ъ5о Жыл бұрын
@@777KoroL777 сначала ты работаешь на TS, потом TS работает на тебя)
@kamik0t0_yt83 Жыл бұрын
Действительно классный канал, очень понятно объясняешь. Подписчиков мало. Надеюсь в какой то момент выстрелит. Спасибо!
@melonges78842 жыл бұрын
Круто, не знал о таких фишках)
@АлинаЧередниченко-п9ъ2 жыл бұрын
Топ! Спасибо огромное автору!
@alexperemey60462 жыл бұрын
Банальное озвучивание справки... главное так и не озвучено: практическое применение. Где и когда это может понадобиться? Для чего используется?
@ЭзизК Жыл бұрын
Всё доходчиво👍
@АндрейБ-п4я9н10 ай бұрын
крутое видео, спасибо большое. жаль, что больше не снимаете(
@DavitBarbakadze2 жыл бұрын
Отлично объяснил.
@andriimuntian36322 жыл бұрын
Спасибо за infer!
@mrgrd562 жыл бұрын
8:38 а тут я не понял зачем ты использовал `T extends infer U ? ...` почему бы просто не написать: type GetStatus = T extends {status: any} ? T['status'] : null; есть какая-то разница разве?
@mushroom2267Ай бұрын
я вообще не понял какая практическая польза от этого
@ВсеволодРусинский2 жыл бұрын
👉 Этот комментарий создан в качестве уважения автору и для продвижения его канала.
@uncle-xxi Жыл бұрын
Какая-то черная магия. Надо вникать. :)
@oRiGiNaLMrInsaf10 ай бұрын
В примере с TryInfer, зачем вообще infer? Можно напрямую получить тип как T[keyof T], разве нет?
@efim4eg2 жыл бұрын
спасибо за infer, закрепил
@АнтонПономарев-ч6б5 ай бұрын
perfect
@alexeysvetlenko2217 Жыл бұрын
крутяк
@mrgrd562 жыл бұрын
2:30 Имхо не лучший пример :с Ибо гораздо лакончинее было бы сделать так: function getId(obj: T): T['id'] { return obj.id; } (я использовал тут ещё unknown вместо any но в данном случае разницы особо нет, но я предпочитаю unknown вместо any, когда это возможно) либо можно так ещё, с использованием infer: function getId(obj: T): T extends {id: infer K} ? K : never { return obj.id; } но считаю что мой второй пример плохой ибо проще и лучше сделать без infer
@motolife49002 жыл бұрын
Оооо, бомба
@plexterq310 ай бұрын
Не очень понял infer на примере type GetStatus = T extends infer U ? U extends {status: any} ? U['status'] : null : null; Чем это отличается от просто? type GetStatus = T[keyof T];
@ixplo Жыл бұрын
спасибо за контент, но вы точно фронтенд разработчик? )) у вас оч давно не обновлялся браузер )
@Peter-vz4tb2 жыл бұрын
Очень интересно но ничего не понятно. А есть где-то более практические задачки. Чтобы можно было запустить и копопаться. На ангуларе например и чтобы все - интерфейсы, женерики, условныте типы.
@Alexander-fp4fs2 жыл бұрын
отличные видео по typescript у тебя, а можешь плиз запилить видео react с typescript
@wisejs2 жыл бұрын
Кажется, таких видео уже десятки. Что именно интересно?
@LeBron4eg2 жыл бұрын
Хорошие видосы, но мало!
@BlueCell11 ай бұрын
Не могу понять, зачем писать: ```type TryInfer = T extends infer R ? R[keyof R] : never;``` Если можно просто написать: ```type TryInfer = T[keyof T]``` ???
@habalgarmin2 жыл бұрын
Какой смысл в этой конструкциии: T extends infer U ? . Немного переписал твои примеры для наглядности: type GetStatus0 = T extends object ? T extends { status : any} ? T['status'] : null : undefined type GetStatus1 = T extends infer U ? U extends { status : any} ? U['status'] : null : undefined type Status0 = GetStatus0 // typeOf Status0 - undefined type Status1 = GetStatus1 // typeOf Status1 - null, в undefined не свалюсь, какой бы тип не передал кроме never any unknown
@wisejs2 жыл бұрын
Смысл - заставить тайпскрипт распознать тип
@olezhonnv3215 Жыл бұрын
@@wisejs Смысл - сломать себе мозг)))
@alexandroppolus Жыл бұрын
Смысла никакого. Всё то же самое можно проще: type GetStatus = T extends {status : unknown} ? T['status'] : undefined;
@ПетрБалашенко2 жыл бұрын
Только начал познавать TS (входит в стэк куда хочу на работу устроится) и вроде бы все понятно когда работаешь со своими объектами или переменными, но когда с разных api прилетает кто во что горазд, то туплю и не понимаю как описать, вроде понятно что условными типами а толком не могу разобраться(
@khmerhan27482 жыл бұрын
Если Вы не пишите свой интерпретатор, то Вам этот сахар не нужен.
@АлександрСосо-щ1б7 ай бұрын
молодец, не забывает язычок трубочкой сворачивать, когда иностранные слова произносит!
@МихаилСидоров-ч7я2 жыл бұрын
Добрый всем вечер! type T = A extends [infer U, 1] | [1, infer U] ? U : never; type F = T; У F тип 2 | 1 type T = A extends [infer U, 1] | [1, infer U, infer U] ? U : never; type F = T; У F тип 2 | 3, но исходя из первого примера должен быть 2 | 3 | 1 Но это почему-то не так... Как вообще понимать такое поведение?
@wisejs2 жыл бұрын
Вы сохраняете 2 и 3 через инфер в U. Из него получается объединение. Все правильно. А первый параметр игнорируется, потому что длина 3, а не 2.
@МихаилСидоров-ч7я2 жыл бұрын
@@wisejs Не совсем понятно, почему в первом примере тип F 2 | 1, если тогда по идее должно быть 1 | 2... И почему в первом примере появляется 1, если кортеж [1, 2] в принципе не может расширить кортеж [infer U, 1]? Объясните, пожалуйста, что именно прям в деталях происходит внутри компилятора TS, как он вообще обрабатывает инструкцию A extends [infer U, 1] | [1, infer U] ? U : never ? Просто в моем понимании если у нас аргументом дженерика попал тип [1, 2], то мы должны той инструкцией проверить, расширяет ли тип [1, 2] тип [infer U, 1] | [1, infer U... Истинность того, что расширяет, вытекает из подтипа [1, infer U], поэтому мы в U записываем 2... А откуда потом берется 1 я прям реально не могу понять... ((
@alexandroppolus Жыл бұрын
@@МихаилСидоров-ч7я первый пример выглядит как баг.
@raufhashimov2412 жыл бұрын
а зачем бросил канал ???
@yaroslav86092 жыл бұрын
чет жесть какая-то, можно пример, где это на практике пригодится?
@wisejs2 жыл бұрын
В видео есть примеры. Это не часто используемый, но полезный функционал. Я, например, постоянно использую ReturnType.
@starwalker.musician2 жыл бұрын
Программисты на C# или Java молча наблюдают как TypeScript стреляет себе в ногу ))) С лексической стороны, подобные конструкции это - самое уродливое ООП, которое я когда-либо видел. Тот случай когда костыли становятся просто не читаемыми.
@wisejs2 жыл бұрын
@@starwalker.musician Каким боком ООП к данным конструкциям?
@leshax2 жыл бұрын
@@wisejs эти конструкции проявление параметрического полиморфизма в своем самом извращенном варианте
@wh1teb1ack922 жыл бұрын
@@starwalker.musician реально это выглядят как не особенности языка, а реально костыли, которые лучше вообще обходить стороной.
@nickolaizein74652 жыл бұрын
ничего не понял 🙄
@olezhonnv3215 Жыл бұрын
Надо с основ начинать. Такое не сходу поймешь.
@whiteguards43 Жыл бұрын
По моему без infer легче
@crocus1612 жыл бұрын
jjj
@РусланА-ф2н Жыл бұрын
Спасибо за видео. Еле-еле разобрался Всё что касается условных типов и infer - это какой-то кромешный 3,14здец 7:40 как вообще такое чудовище читать
@olezhonnv3215 Жыл бұрын
Ты еще Перл не видел, вот там чудовище! Write only code.