Спасибо! Нравится, что рассказываешь спокойно, будничным голосом) Так приятней слушать.
@vadimniziev54893 жыл бұрын
Отличное видео! Михаил, спасибо! Изучаю ТС, вопросов много возникает, однозначно это видео закрыло некоторые, особенно по по оформлению types и interface.. хочется побольше таких видео, где делаем приложуху на reacr/redux/ts )
@tirthadeva_yoga10 ай бұрын
Михаил, спасибо большое за видео 🙏🏻 благодаря твоим урокам обучаться программированию приятно, интересно и полезно! Очень доходчиво, спокойно, и самое главное информативно.
@META_MAZ2 жыл бұрын
Спасибо вы первый человек кто доходчиво объяснил
@ОлегПетров-п4у3 жыл бұрын
Михаил, спасибо за такую важную и нужную тему! По внедрению TypeScript в React понятного объяснения практически не найти, а уж разбора сложных тем типа типизации Redux, reducer, connect, event, API, Thunk и остальных составляющих реального приложения, так и вообще не встречал. Однозначно, лайк и подписка. P.S. Буду ждать продолжения. ))) P.P.S. Отдельное спасибо за светлую тему в IDE, смотреть видео намного комфортнее чем на черной.
@ilukhan79111 күн бұрын
Спасибо за хороший урок Для продвижения React-приложение на TypeScript
@VakiTaki Жыл бұрын
спс, наконец-то узнал откуда берутся типы для разных компонентов и их событий
@Sylar77732 жыл бұрын
Урок НЕРЕАЛЬНО помог разобраться в TS, ОГРОМНОЕ Вам СПАСИБО!!!
@ni4egonepridumal2 жыл бұрын
Спасибо Михаил, за ваш урок, все четко и локанично ! Было бы интересно увидеть еще в вашем исполнении больше видео по тайпскрипт.
@maksymradchenko48893 жыл бұрын
Михаил вы как всегда , великолепны ! Спасибо !! Давайте еще видосы про react+ts))
@garikmelqonyan91302 жыл бұрын
Great thanks, Michael. Simple, but good and useful tutorial.
@ПавелСтародубцев-ц6ш Жыл бұрын
Миша спасибо, очень полезный урок и главное понятный👍👍👍
@AndranikArshakyan2 жыл бұрын
Видео отличное, дает ответ на многие вопросы и по типизации , и про наследование , рекомендую просматривать не 1 раз, с каждым разом понимаешь все больше и больше
@dmitrykarpovich1862 жыл бұрын
Михаил, снимаю перед вами шляпу! Очень понравилось ваше изложение материала. Спасибо большое!
@babkann2 жыл бұрын
Михаил, спасибо большое за отличный урок! Очень помогли мне как новичку выполнить задание на практике :)
@АлМ-ы8ъ3 жыл бұрын
Проводник справа, тема светлая, очень "нестандартно", дорогой друг )))
@tianshano2 жыл бұрын
Замечательный урок, большое спасибо! Честно говоря уже некоторое время мучилась с тем, как создать проект так, чтобы работать с .tsx файлами, а не .js. Создавать проекты еще не приходилось, только вносить правки :)
@kolabizz Жыл бұрын
Миша, спасибо! Отличное видео!
@BlindPewRus2 жыл бұрын
Супер, коммент поддержки и благодарности
@pitbrest Жыл бұрын
Благодарю за работу
@ahad55812 жыл бұрын
Огромное спасибо. Было очень полезно.
@Saveli_Sh3 жыл бұрын
Спасибо за видео! Очень помогло создать туду-лист. Единственное, что нет информации о записи данных в локал-сторадж, так как вся информация удаляется при перезагрузке. Я это решила в итоге. Может, для кого-то это очевидно, но я новичок в этом деле. Все равно, спасибо, конечно, Вам, и успехов!
@АлександрШатохин-н7г3 жыл бұрын
Спасибо за видео. Если есть возможность , просьба сделать аналогичную связку React+TS, но посложнее и с использованием Редакса.
@Awe88Some Жыл бұрын
было бы круто, поищу, может, за два года он всё же сделал подобное
@olehy50003 жыл бұрын
Спасибо! ТайпСкрипт стал немного понятнее)
@BiberStroy Жыл бұрын
хорошо объясняете. спасибо!
@andrzejsotnikow74943 жыл бұрын
Спасибо, приятно было слушать
@shiryaev5853 жыл бұрын
Спасибо большое! Больше видео по TS!!!
@yakut542 жыл бұрын
Миша, спасибо за науку! Первое приложение на TypeScript`е написано....
@nnnabbot3 жыл бұрын
Михаил, спасибо большое. Хоть чуть чуть стало понятно в общих чертах работа с TS. Проектик бы с TS с использованием REDUX
@web29052 жыл бұрын
Спасибо за видео.
@evgeniyn15423 жыл бұрын
Отличное видео Михаил, спасибо! Даешь новый курс на удеми, React + TypeScript + Redux ( или его аналоги) :-)
@mishanep3 жыл бұрын
Вот Redux уже более жёсткий в плане типизации :)
@kamol88612 жыл бұрын
очень годно, спасибо большое
@admusmanov30092 жыл бұрын
Очень круто 👍👍👍
@denisvradiy85033 жыл бұрын
Отличное видео, спасибо ! Сделайте пожалуйста видео с более сложным приложением, с типизацией асинхронных запросов и подключением библиотек
@mishanep3 жыл бұрын
Я иногда думаю о подобного рода историях, но это на несколько часов. Затраты на подготовку видео большие, а отдача неочевидная. Пока аналитика показывает, что длинные видео плохо смотрят на моем канале. Может быть в рамках отдельного курса.
@mariashabalina62992 жыл бұрын
@@mishanep согласна насчет нескольких часов, смотреть тяжело. А если разбить на несколько роликов?
@react_js2 жыл бұрын
оифгенное видео спасибо
@deantek2 жыл бұрын
а я React.FC никогда не писал, всегда типизировал пропсы так: type ComponentProps = { name: string } const MyComponent = ({name}: ComponentProps) => { return {name} } или так нельзя делать и лучше прям как в видео?
@mishanep2 жыл бұрын
Можно и так. Кто-то даже считает, что так правильнее. Через FC у нас неявно добавляется несколько свойств, например children.
@Sobanim3 жыл бұрын
Почему у вас мало просмотров и подписчиков?( НУ ведь это ближайшее будущее fronta, большие приложения надо будет писать только на typescript
@АлександрЛугченко-н3в3 жыл бұрын
Angular приложение все на тс
@Sobanim3 жыл бұрын
@@АлександрЛугченко-н3в Я знаю. Но в вакансиях серьёзных фирм уже встречается react + typescript
@АлександрЛугченко-н3в3 жыл бұрын
@@Sobanim 100% скоро ещё больше будет
@johnconnor97872 жыл бұрын
const inputRef = useRef(null); So in this React snippet we are using "generic" type, as I understand. Is my the following statement correct: We use "T" generic type (can be any letter) - when we do not know the exact type, which will be used inside of a function. "T" we use only when we DECLARE a function. But when we want to EXECUTE a function - we specify the concrete generic type, which will be used in this particular case. To sum up - in the example above - useRef - tells that this particular time the generics, which were specified in useRef declaration will be "HTMLInputElement " or "null" Am I correct?
@mishanep2 жыл бұрын
Hello John! Yes, everything is correct.
@johnconnor97872 жыл бұрын
@@mishanep You are the best! :)
@the.gist.3 жыл бұрын
Спасибо)
@true22710 ай бұрын
Михаил, можете подсказать React.FC еще актуален? Говорят, что его не стоит использовать больше
@mishanep10 ай бұрын
Кто говорит? =) У нас на проекте ребята используют. Мне больше нравится просто пропсам тип набрасывать.
@true22710 ай бұрын
@@mishanep в самом большом русскоязычном тг канале React мне сегодня несколько человек написали не использовать React.FC, за его использование никто не высказался. Вот так и учусь, в одном месте пишут одно, в другом противоположное , но послушаю в итоге вас :) Без ментора крайне тяжело разобраться:(
@seiidkhandzhursumbekov10132 жыл бұрын
А как скачать исходники чтобы запустить у себя ?
@innokentiimarkov2792 жыл бұрын
Господа, дамы, с вами Сэр троглодит и сегодня мы пишем react-приложение на typescript (очень нравится видео)
@DenInside2 жыл бұрын
Михаил, здравствуйте. Очень жду полноценный курс реакт + тс, планируется такой? Ил может быть скоро выйдет?
@mishanep2 жыл бұрын
Приветствую. Я работаю над курсом по typescript. Там будет раздел про Реакт. Планирую выпустить осенью.
@DenInside2 жыл бұрын
@@mishanep а осенью в начале? Или не знаете пока?
@mishanep2 жыл бұрын
@@DenInside Я планирую на сентябрь. А там - как будет получаться.
@DenInside2 жыл бұрын
@@mishanep очень жду и сразу куплю, вы супер
@JonDoe-l9c Жыл бұрын
Михаил привет. Не могу разобраться в одном моменте. Проект на React+Typescript. Есть одна карточка продукта для разных типов продуктов. Есть интерфейсы для каждого продукта свой. Как передавать нужный интерфейс в карточку продукта ?
@mishanep Жыл бұрын
У компонента карточки может быть свой интерфейс. Его можно по-разному создавать, в том числе наследуя поля существующих типов. В принципе можно и в сторону дженериков посмотреть. Смотря какие кейсы надо обрабатывать.
@JonDoe-l9c Жыл бұрын
@@mishanep Ok. Спасибо
@asfsafsafasfsafs53203 жыл бұрын
Офигенный видос) Жаль что на русском языке мало материалов по TS. Лайк подписка)
@totalcount3 жыл бұрын
не смог в такой проект внедрить emotion для стилей? как это сделать?
@mishanep3 жыл бұрын
У emotion должен быть свой набор типов, который можно импортировать и использовать. Надо ковырять доку. Я работаю со styled-components. По сути то же самое, но нюансов emotion не знаю.
@totalcount3 жыл бұрын
@@mishanep я использовал styled-components, всегда казалось, что может быть удобнее? Потом в наш проект внедрили emotion - оказалось очень штука то интересная, особенно когда привык и узнал все фишки. Вот только в своём проекте настроить пока не могу, сижу читаю доку как раз - не выходит. Что-то упускаю. Если будет стоять вопрос о теме для нового видео, то прошу данную настройку окружения взять на рассмотрение)
@renbrek3 жыл бұрын
Спасибо за видео, единственный вопрос, видимо относительно недавно был какой то патч у ts, который теперь не дает просто написать e.target.value. Нашел следующее решение: (e.target as HTMLTextAreaElement).value. Однако, вопрос, как сейчас наиболее правильно реализовывать подобного рода задачи, заранее извиняюсь если вопрос слишком глупый, новичок в react и ts соответственно
@mishanep3 жыл бұрын
Приветствую, Иван. Честно говоря, не совсем понимаю сам вопрос. Задачи бывают слишком разные и инструменты подбираются по-разному. Где вообще не требуется ts, где-то нужен дополнительный инструмент для управления стейтом. В лоб не ответишь.
@renbrek3 жыл бұрын
@@mishanep Я имел ввиду типичный кейс для ввода данных. Просто я видел как значение из поля забирают с помощью e.target.value в 100% случаев. А ts теперь ругается на такую запись, я нашел решение, о котором выше написал, но решил поинтересоваться именно у вас может есть какое то более правильное решение. Спасибо за ответ
@mishanep3 жыл бұрын
@@renbrek конкретно с подобным кейсом не встречался. Действующие проекты, как правило, не спешат обновлять существующую кодовую базу под каждый релиз каждого инструмента на проекте. Дорого это.
@BOCbMOU3 жыл бұрын
@@renbrek тс ругается потому что вы неверно типизировали функцию. Не у всех HTML элементов имеется value в таргете. У HTMLInputElement он имеется, поэтому если хендлер пишется для инпута, то и тип должен быть соответствующий.
@renbrek3 жыл бұрын
@@BOCbMOUДа, спасибо за ответ, я уже разобрался, типизировал event ChangeEvent 😊
@vadimniziev54893 жыл бұрын
Михаил, есть такой вопрос...)) здесь в проекте идет экспорт компонента через {...} и соответственно импорт также. Чем он отличается от export default ?
@mishanep3 жыл бұрын
Экспорт по умолчанию в файле может быть только один. Плюс при импорте из такого файла мы можем называть портируемую сущность как угодно. При обычном экспорте - можно экспортировать любое количество сущностей. При этом при импорте происходит, по сути, деструктуризация объекта. Имена при импорте должны совпадать с тем, что мы экспортировали. При необходимости мы также можем переименовать в момент импорта, используя ключевое слово as. В принципе, когда в файле всё равно одна сущность, то особо не принципиально как именно делается экспорт. Вопрос предпочтений и внутреннего стайл-гайда внутри команды разработчиков.
@vadimniziev54893 жыл бұрын
@@mishanep спасибо большое!! Я понял. Я думал здесь еще связано как то с lazy подгрузкой, оказывается не совсем
@asfsafsafasfsafs53203 жыл бұрын
Просто стиль кода, ну и некоторое предотвращение ошибок. При export default вероятность опечататься в импорте выше написав import Component-1 from "./Component-2" Если в Компоненте-2 указан export default то в строке импорта не будет никакой опечатки просто Component-2 погрузится под именем Component-1 и дальше в коде уже будут проблемы) При обычном экспорте в импорте как сказал Михаил если не указать import Component-2 as OLOLO from "./Component-2" сразу выскочит ошибка)
@ПавелРубан-п2ч3 жыл бұрын
Видео пока не смотрел,есть тут редакс ?
@mishanep3 жыл бұрын
Нет, это видео конкретно про Реакт, без дополнительных библиотек.
@surensimonyan71062 жыл бұрын
Привет а у вас в будущем будет урок или уроки по TypeScript ?
@mishanep2 жыл бұрын
Здравствуйте. Смотря о чем речь. У меня есть плейлист по основам ts. Осенью выйдет видео курс.
@@mishanep в этом видео применение useRef только для примера ведь? я в инпут добавил autoFocus и на глаз всё так же работает
@mishanep2 жыл бұрын
@@petermashine1483 для примера. Фокусом не только при загрузке приходится управлять. Классический пример - заполнение банковской карты с переносом фокусом по заполнению каждого поля
@glaciron2 жыл бұрын
Да уж ,эта путаница с проверкой ,сложно укладывается в голове,вроде ничего особенного ,но везде бегаешь по коду и добавляешь типы.Проще просто покинуть PropsTypes.
@vladimirshumliaiev9279 Жыл бұрын
+
@Antonym-b5o10 ай бұрын
тошнит от ts, но уже во всех проектах оно
@ДмитрийДмитриевич-ы2о Жыл бұрын
Белая тема ? Серьёзно!!
@yakut542 жыл бұрын
в стандарте ES5: function handleChange(e: React.ChangeEvent){ setValue(e.target.value) }