большое спасибо за концентрат настолько понятной и важной информации, было бы интересно посмотреть что-то из ряда "типичные ошибки при работе с ts"для понимания лучших практик
@c4973 Жыл бұрын
Михаил, спасибо за ваши видео! Спасибо за простое пояснение сложных вещей! 🔥🔥🔥 Пожалуйста не забрасывайте.
@victormog2 жыл бұрын
Очень полезные уроки для освоения TypeScript!
@vadim_tech2 жыл бұрын
Топовая вещь! Полиморфные компоненты это must have для тех кто пилит свой ui kit.
@thats_embarrassing_JS2 жыл бұрын
Typescript творит чудеса... Спасибо за видео, Михаил!
@YuryKorotovskikh Жыл бұрын
Большое спасибо за видео! Было очень полезно, посмотрев, смог решить старую проблему с полиморфным компонентом в библиотеке.
@denis74422 жыл бұрын
Красава! Спасибо за такой контент, все доходчиво и без воды. Побольше бы видосов по ts
@роматарасов-о8л2 жыл бұрын
очень хорошее видео, показал очень много продвинутого(на мой взгляд) тайпскрипта. в ютубе много видосов где поверхностно цитируется документация но здесь мы можем увидеть как эти штуки могут работать вместе
@bagga_lev2 жыл бұрын
Как всегда, вижу ролик Михаила и понимаю, что время будет проведено с пользой =) Спасибо за материал!
@АнатолийГорбов-о1ь Жыл бұрын
Это прям супер видео! Михаил спасибо, если можно побольше такого рода видео!
@profesor082 жыл бұрын
Действительно полезный материал. Когда сам делал подобное, пришлось ручками выводить типы для атрибутов из IntrinsicElements, так как не заметил более удобных и готовых типов.
@Pavel-wj7gy Жыл бұрын
Спасибо за видео! На самом деле полноценная реализация такого компонента это задача на несколько дней, но за контент большое спасибо, тема очень полезная.
@Антон-ю2п6е2 жыл бұрын
Фантастика!
@ЕгорЛазука-й1э Жыл бұрын
Спасибо за видео. Кроме пропса as такие возможности полиморфизма можно провернуть через другой пропс? Например пропсы зависят от значения пропса multiple (true|false).
@dreadwood6 ай бұрын
Это просто взрыв мозга! Наконец-то без флагов и ветвлений перепишу все кнопки
@demiurgen132 жыл бұрын
Михаил, спасибо. Годнота за годнотой
@AndreiTolstoi2 жыл бұрын
реально лучший!👍👏
@mmm-m2t Жыл бұрын
Дружище, один момент, в React, для создания компонента, используется функция createElement а не , так не правильно делать. В остальном, спасибо, очень и очень полезный для меня видеоролик!
@apyrkh Жыл бұрын
странно, для as="button" не определяется тип для onClick ивента: Parameter 'e' implicitly has an 'any' type.ts(7006). Я делал через: type HTMLElementProps = Parameters[0] , но по ощущением медленнее работает
@almazyakhin72462 жыл бұрын
спасибо, полезно
@Artur-pk3sw2 жыл бұрын
я так давно это искал! спасибо :)
@snatvb Жыл бұрын
Крутые видосы для продвижения пацанов из начинающий мидлов далее я бы еще экспортировал пропсы -- ибо если потом проекте надо будет сделать обертку над таким компонентом -- придется менять код, который уже написать, что нарушение open-close principle
@secondname_lastmane8 ай бұрын
@Михаил Непомнящий подскажите как сюда в этот компонет прокинуть ref
@XiaoRenMeishi2 жыл бұрын
Михаил, у вас нет в планах адаптации ваших курсов по Реакт и Редакс на тайпскрипт? Тот же материал, но с увеличенной ценой за бонус ввиде типизации.
@mishanep2 жыл бұрын
Я только в этом месяце выпустил курс по ts, где в том числе есть блоки по реакт и редакс. Сами курсы по реакт и редакс останутся пока на js.
@Bohdan-Venhrenovych2 жыл бұрын
Топ!
@CJIu3eHb2 жыл бұрын
Интересно, можно ли избавиться в текстовом компоненте (9:34) от трехкратного употребления в дженериках "E extends ElementType"? Кстати, мне кажется, что можно убрать дефолтное присвоение дженерику в строке 3, а в строке 9 не использовать этот дефолт, а явно указать уже имеющийся в этом выражении дженерик: "keyof TextOwnProps".
@brucewayne_0072 жыл бұрын
🔥
@cheesecheesson9842 Жыл бұрын
Какой классный контент и так мало просмотров.
@sicdex2 жыл бұрын
Привет, есть одно НО - если оборачивать это в (например: memo(Component)) это будет работать с поправкой на те элементы которые у вас в BaseProps, а в otherProps не чего не придёт, так-как условная "E" у вас не попадает в фии memo.
@Pavel-wj7gy Жыл бұрын
Это далеко не единственная проблема с такой простой реализацией. Вероятно также будут проблемы с тем, что мы не сможем передать ref и даже если захотим, то придется переписывать много кода. Также под вопросом передача event handler'ов. А что если мы захотим передать в компонент-кнопку из реакт-роутера? А что если компонент-consumer нашего компонента передает className, при этом внутри самого компонента уже есть какой-то className? Как вообще стили className родителя, styles родителя, event handler'ы родителя будут сливаться с теми же пропсами в базовом компоненте? Иными словами релизация такого компонента на TS это ОЧЕНЬ сложная задача. Код который здесь написан, вряд ли пошёл бы в продакшн.
@poiu71852 жыл бұрын
Давайте про модульный подход в реакт
@alexeyfilippov42 Жыл бұрын
хм не знаю как сделать Link от react router dom или button
@ПавелПечёный-ф9й2 жыл бұрын
👍
@constantine64642 жыл бұрын
5:21 typeof defaultElement - это ведь будут string, разве нет?! зачем это вообще??
@mishanep2 жыл бұрын
Не совсем. Типом будет литерал. И если значение потом изменится, то и тип будет другим
@vlasovdanildev2 жыл бұрын
Здравствуйте Михаил, сделайте пожалуйста видеоролик про все хули реакта
@A.Floatrx2 жыл бұрын
🤣
@vladimircreator Жыл бұрын
База.
@yuliasereda56712 жыл бұрын
здравствуйте,а курс по тайпскрипту состоит из 6 видео?
@mishanep2 жыл бұрын
Здравствуйте. Смотря о чем вы спрашиваете. Если про материалы на KZbin, то здесь у меня 2 плейлиста - один про основы, второй про реакт (включая это видео). Есть 13-часовой курс по ts, опубликованный мной на Степике и на udemy. Актуальные ссылки всегда есть на моем сайте mishanep.com
@yuliasereda56712 жыл бұрын
@@mishanep спасибо большое
@NeoCoding11 ай бұрын
что-то на умном
@ruslanmustafin88874 ай бұрын
Читерство)
@nade32822 жыл бұрын
пример с текстом странный, в чем смысл создавать отдельный компонент для текста, если захочешь изменить div на h1 или на label это и без компонента можно сделать
@vadim_tech2 жыл бұрын
Это же пример. В реальности, обычно, компонент text содержит дополнительную логику со стилизацией текста. Чтобы ее переиспользовать как раз и нужны полиморфные компоненты.