Как я стал профессионалом TypeScript

  Рет қаралды 16,383

Ayub Begimkulov

Ayub Begimkulov

Күн бұрын

В данном видео мы с вами поговорим про TypeScript. В частности расскажу, как я научился писать сложную типизацию для библиотек и встроенных функций. Дам советы из личного опыта, поделюсь списком тем, которые нужно знать и расскажу, какие ситуации сильно повлияли на мой прогресс.
Репозиторий с задачами:
github.com/type-challenges/ty...
Telegram канал:
telegram.me/ayub_begimkulov_c...
Таймкоды:
00:00-00:48 - Интро
00:48-03:35 - Моя предыстория
03:35-08:28 - Что дало значимую разницу
08:28-10:24 - Разбираем конкретные темы, которые нужно знать
10:24-11:06 - Касательно материалов для изучения
11:06-16:36 - Где практиковаться?
16:36-17:08 - Заключение

Пікірлер: 117
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Друзья, как и сказал, в следующие пару недель планирую выпускать видео по TS. Буду покрывать темы из показанные на одном из слайдов, однако если есть что-то конкретное, что вы хотели бы увидеть - пишите, обязательно прочитаю и постараюсь объяснить в грядущих роликах. UPD: Заметил, что в видео была сделана ошибка. Я использую "Computed Types", вместо "Mapped Types", на одном из слайдов. Поэтому не надо пугаться, это не какой-то новый синтаксис/функционал.
@ulankot
@ulankot Жыл бұрын
+ за такие видео. Хочется максимально прокачаться в Typescript
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо за фидбэк! Планирую делать плейлист в ближайшие пару недель.
@malsagov6331
@malsagov6331 Жыл бұрын
Спасибо за контент Айюб!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Рад помочь!
@promoabys
@promoabys Жыл бұрын
Аюб, спасибо за видео. Как введение хорошо, но ждём от тебя больше практики и желательно от простого к сложному
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Привет. Спасибо за фидбэк! Да, в планах заснять дальше более практические видео.
@dmitriyleshchev5848
@dmitriyleshchev5848 Жыл бұрын
Интересно, спасибо за видео!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Рад помочь!
@2difficult2do
@2difficult2do Жыл бұрын
Спасибо за дельные советы👍
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Не за что)
@daniilnem9145
@daniilnem9145 Жыл бұрын
Отличное видео👍🏻 спасибо 🙏🏻
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Рад помочь!
@johnd1431
@johnd1431 Жыл бұрын
Спасибо за мотивацию и советы!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Рад помочь!
@druf5962
@druf5962 Жыл бұрын
спасибо за видео. радуют изменения в подаче контента. раньше: 1) было много подкашливаний, шмыганий носом, зевков)) 2) скачки звука (чаще всего было очень тихо) 3) равное повествования 4) отсутствие вебки извиняюсь если слишком прямо написал. сейчас намного повысилось качество видео хотелось бы увидеть какой-то приближенный к реальному - большой проект, где можно было собрать побольше кейсов из прошлых видео и показать, как оно работает на практике с большим кол-м компонентов, постоянными запросами, усложненной логикой и т.д. Давно ищу подобный проект, на просторах ютуба такого попросту нет
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо за то, что уделил внимание и написал комментарий. Да, над качеством до сих пор активно работаю. Касательно проекта - уже давно хотел что-то сделать, но вот все думаю, как это лучше упаковать. Так как формат "включил камеру и пишешь код" - не очень хорошо заходит. Может стоит стримы делать раз в неделю... В общем, обязательно подумаю на эту тему. Спасиб за предложение!
@myspace2003
@myspace2003 Жыл бұрын
Молодец! Продолжай в том же духе!!!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо, Юсуф!
@tmkplzv7979
@tmkplzv7979 Жыл бұрын
Спасибо, Айюб.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Не за что)
@user-kj6go4ft4j
@user-kj6go4ft4j Жыл бұрын
Удачи!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо!
@GitarisT12332
@GitarisT12332 Жыл бұрын
Буду безумно рад, если реализуешь задумку, с нетерпением жду
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Если ты про плейлист, то уже начал. Должно скоро выйти первое видео по TS.
@GitarisT12332
@GitarisT12332 Жыл бұрын
@@ayub_begimkulov да, про него, огонь 🔥
@jamjam3337
@jamjam3337 Жыл бұрын
👏👍
@mercury_2379
@mercury_2379 Жыл бұрын
комментарий в поддержку канала
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо!
@user-ex9ju3sz2x
@user-ex9ju3sz2x Жыл бұрын
Лайк👍
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо!
@biLLie_wiLLie
@biLLie_wiLLie Жыл бұрын
Орфография в превью улыбнула)
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Лол, спасибо, что написал. Сейчас поправлю. Edit: исправил.
@c4973
@c4973 Жыл бұрын
Аюб, спасибо за дельные советы, полезные линки и направление. Начал проходить курс на Udemy за 11$, так как самому не все темы понятные по документации. Попрошу от лица джунов - можешь подробнее разжевывать сложные темы, допустим utility types (Pick, Omit, Extract), в плане - как именно это работает и главное когда это можно заюзать в каком случае. Спасибо за понимание.
@lying6624
@lying6624 Жыл бұрын
Ну потому что Вам нужно внимательно читать документацию. Pick берёт все типы, которые Вы указываете. Omit берёт всё, КРОМЕ тех типов, которые Вы указали.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Ок, постараюсь уделять больше внимания деталям. Рад слышать, что инвестируешь в свое обучение и развитие - это точно откупится!
@evgeniymarkitan862
@evgeniymarkitan862 Жыл бұрын
😍
@user-gg9ec2nm6i
@user-gg9ec2nm6i Жыл бұрын
круто, как раз начал учить ts
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Как раз во время!
@helplrewerse2925
@helplrewerse2925 Жыл бұрын
Кайф, хочется посмотреть про продвинутые возможности JS, TS, React мозможно паттерны проектирования, лучшие практики, возможно какие-то сложные или фундаментальные вещи.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Данные видео обязательно будут выходить. Если есть что-то конкретное, что интересует сейчас - тоже пиши. А так, спасибо за фидбэк!
@helplrewerse2925
@helplrewerse2925 Жыл бұрын
@@ayub_begimkulov ну например работа с WebSocket, WebWorkers
@ExtMak
@ExtMak Жыл бұрын
Спасибо за видео, Аюб! Расскажи, пожалуйста, как лучше всего типизировать ошибки в try/catch блоках?
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Когда в catch ловишь ошибку - тип у нее unknown (если стоит strict мод). Дальше уже надо работать через type guards - эта тема будет разобрана в видео, которые выходит сегодня.
@rustamakhmetyanov4404
@rustamakhmetyanov4404 Жыл бұрын
Какой то джедайский уровень типизации =)
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Все разберем обязательно, не волнуйся.
@alexey-pd4ex
@alexey-pd4ex Жыл бұрын
Отличное видео, качество на высоте!) Есть в планах сделать видео о том как попал сеньором, как проходил собес и тд..?)
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Да, думаю сделаю как-нибудь.
@magnific8930
@magnific8930 Жыл бұрын
может кому то сэкономлю время и нервы: иногда стоит просто написать ctrl + p и >TS restart server, а видео топ))
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Да, бывает очень полезно!
@user-qu6zw1mc5q
@user-qu6zw1mc5q 8 ай бұрын
вот это я понимаю синьер
@web__dev
@web__dev Жыл бұрын
Больше видео про TS с задачками и объяснением
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Да, обязательно!
@starunski_
@starunski_ Жыл бұрын
+++ top
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо!
@user-gg9ec2nm6i
@user-gg9ec2nm6i Жыл бұрын
рубрика с решением задач зайдёт
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Да, практика тоже будет!
@CJIu3eHb
@CJIu3eHb Жыл бұрын
Понятно, что наименование переменных - одна из двух сложнейших вещей в программировании, но все-таки к неймингу поответственнее надо относится, а в обучающих примерах особенно. Например, Value лучше было бы обозвать Obj или Target (или еще как-то), т.к. при присутствии Keys и Key ассоциация с Value идет со значением свойства объекта, нежели с объектом. Надеюсь, что в дальнейшем будет разбор этого примера, т.к. сам я сходу не осилил понять.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо за конструктивную критику! Постараюсь обращать больше внимания на нейминг. Касательно тем - обязательно все разберем, переживать не надо.
@kirillpodolinniy309
@kirillpodolinniy309 Жыл бұрын
Аюб, большое спасибо за видео, очень помогает ваш канал расти дальше. Скажите, пожалуйста, у вас техническое образование или иное? И какое у вас в целом отношение к этому - должен ли разработчик обязательно его иметь по вашему мнению? я в прошлом врач, но в целом не нашел пока ограничений, которые мешают сейчас в работе. Интересная ваша позицию по этому вопросу.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Рад, что мои видео приносят пользу! Касательно высшего - у меня его нет. Я считаю, что нету смысла его получать, если нет четкой причины, для чего оно понадобиться. В плане работы и возможностей - проблем вообще не было.
@kirillpodolinniy309
@kirillpodolinniy309 Жыл бұрын
@@ayub_begimkulov Спасибо за ответ:)
@Rozalinaag
@Rozalinaag Жыл бұрын
Хотелось бы разбор темы union, enam когда что использовать, в чем разница
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Записал себе, постораюсь разобрать!
@jgkdmdevienjjgg8866
@jgkdmdevienjjgg8866 11 ай бұрын
Сейчас сам начал изучать advanced тайпскрипт, т.к. на работе часто бывает необходимость, приходится делать "как-нибудь" и не очень удобно. До этого были попытки изучить, смотрел какой-то видеокурс, но там было столько воды и basics что я просто засыпал и до сложной части не дошел. Сейчас нашел курс "Professional TypeScript Training by Matt Pocock" (он дорогой, но есть на торрентах), могу смело рекомендовать, там 3 части, я пока 1 прошел. Проходить не скучно и на каждые несколько видео какую-то новую инфу узнаешь о синтаксисе и возможностях. Строится на базе type challenge как из этого видео, но с подробными видео-объяснениями что и почему (на англ). Это как раз для уровня среднего разработчика который уже дружит с тайпскриптом на проектах, но не врубается в хитросплетения выводов типов в библиотеках. Думаю что пройду этот курс и дальше как раз пойду решать type challenge-и и просто доки официальные читать
@aleksprimetv
@aleksprimetv Ай бұрын
бро ну как прошел? есть профит?
@aleksprimetv
@aleksprimetv Ай бұрын
можешь торрентфайлом поделится?
@jgkdmdevienjjgg8866
@jgkdmdevienjjgg8866 Ай бұрын
@@aleksprimetv вроде с rutracker качал
@jgkdmdevienjjgg8866
@jgkdmdevienjjgg8866 Ай бұрын
@@aleksprimetv Не, подзабил. Но курс толковый. Но надо его практикой подкреплять долгое время, т.к. почти все из головы выветрилось, т.к. по факту на проекте сложный тайпскрипт не юзаю
@jgkdmdevienjjgg8866
@jgkdmdevienjjgg8866 Ай бұрын
@@aleksprimetv Поищи на рутрекере, вроде там брал
@NewDimix
@NewDimix Жыл бұрын
Короче всем новичкам советуешь библиотеку свою писать для понимания тайпскрипта?
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Не совсем. Я же в конце дал линк на type-challenges, там можно попрактиковаться.
@nkp1sss361
@nkp1sss361 Жыл бұрын
основная проблема с тайпскриптом это работа с DOM. Понятно что можно все заделать через as, но я не думаю что это практично. Хотелось бы про это услышать от вас
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
А какие именно у тебя проблемы при работе с DOM? Я согласен, что там не все идеально, но интересно, с чем именно у тебя возникают сложности?
@lyubishkin
@lyubishkin Жыл бұрын
Аюб привет. Спасибо за качественный контент. А у тебя есть высшее образование? И что ты думаешь по поводу него?
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Привет. Высшего нету. Мое мнение такое - если нету четкой причины, почему нужен диплом, то стоит потратить время на что-то более продуктивное.
@promoabys
@promoabys Жыл бұрын
У меня есть вопрос как бы правильно или как вы разбиваете хранение типов для модуля или большой компоненты. В одном файле уже тесно, а на какие сущности это оптимально разбить ещё не решил
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Все зависит от ситуации. Но я бы не боялся того, что много типов в одном файле. Если прям совсем не удобно, можно рядом сделать файл types.ts, тоже нормальный вариант.
@caffeinejavacode1475
@caffeinejavacode1475 Жыл бұрын
Я больше люблю бекенд когда вижу когда фронтенд разработчики оценивают фичи из бекенд которые были реализованы в TypeScript.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Можешь раскрыть мысль, не совсем понял. Тебе нравится, когда фронты проводят ревью бекенд кода на TypeScript? Если да, то интересно почему?)
@ruhidnv
@ruhidnv Жыл бұрын
круто, сделай видео, где разрабатываешь проект за определенный промежуток времени
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Да, часто пишут, надо подумать в эту сторону.
@den1161
@den1161 Жыл бұрын
Интересно так же как тестировать проэкт на ts
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Если нужно тестировать код - то также, через jest. Никаких особенностей не должно быть. Если нужно тестировать типизацию - то тут есть некоторые особенности, про них надо будет снять как-нибудь видео.
@promoabys
@promoabys Жыл бұрын
Сталкивались ли с такой проблемой при импорте зависимостей в TS? TS не хочет по дефолту в импорте подхватывать index файл и перестаёт ругаться на импорт, что не находит то что импортируется или входящий модуль, только при явном прописывании его в конце пути. Конфиг перерыл, не нашёл где бы это решилось. Возможно это от версии ТС зависит и где-то уже такой проблемы нет
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Привет. Я так понял у тебя index файл автоматом не тянется при импорте? Попробуй “moduleResolution: node” поставить, должно помочь.
@promoabys
@promoabys Жыл бұрын
@@ayub_begimkulov Да, проблема такая. “moduleResolution: node” есть. У нас импорты на алиасах, и я смотрю, что без них такой проблемы нет. TS не ругается. Что-то именно из-за алиасов. Что-то гуглится на эту тему - помучаю потом. Спасибо ))
@tanercoder1915
@tanercoder1915 Жыл бұрын
Может замутить плейлист с решением задач из этого репо?
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Я думаю в конце плейлиста чуть попрактикуемся, ну и по ходу разбора тем тоже обязательно.
@fedordostoevskiy4209
@fedordostoevskiy4209 Жыл бұрын
Айюб, 👀👍👍.Кстати, как по мне документация ts сухая как mdn, могли б и поподробнее написать.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
У них там бардак какой-то, есть новая и старая дока. Но handbook вроде норм, темы объясняются там не плохо. MDN же больше как api reference.
@fedordostoevskiy4209
@fedordostoevskiy4209 Жыл бұрын
@@ayub_begimkulov , а мне кажется, что я как разработчик не должен бороздить просторы интернета в поисках ответов как это работает. Handbook хорош, но на старте. Type compatibility очень невнятно написана, там тьма ньюансов.Многие грешат на Microsoft, что им пофиг на разрабов.
@user-ct7dw2kt9e
@user-ct7dw2kt9e Жыл бұрын
можно nikname англоязычного ютубера по тсу, про которого говорилось в видео?) заранее спасибо!
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
mattpocockuk
@madrimov448
@madrimov448 Жыл бұрын
будет ли видео про эслинта
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
А что конкретно хочется увидеть? Таких видео же много а интернете.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
А что конкретно хочется увидеть? Таких видео же много а интернете.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
А что конкретно хочется увидеть? Таких видео же много а интернете.
@madrimov448
@madrimov448 Жыл бұрын
Мне интересно, как вы его используете
@luckystrike91
@luckystrike91 9 ай бұрын
я страдаю от своего желания покрывать все типизацией и максимально обобщать код. писал расширение для хрома а по итогу внутри образовались 2 библиотеки)
@helplrewerse2925
@helplrewerse2925 Жыл бұрын
По поводу ошибок: ошибки в большинстве случаев кал и нужно читать только самый конец, но это тоже не всегда помогает бывают случаи когда и сёрч не помогает тогда я обычно пишу ts-ignore и о чудо перед коммитом убираю игнор и тс не ругается, но боюсь так будет работать не у всех если не в падлу хорошо помогает вопрос "а что именно я там натипизировал и что конкретно я хочу передать или получить?"
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
В целом, обычно все ошибки у меня получалось нагуглить. Главное часть специфичную под проект вырезать. А так, еще можно добавлять ts-expect-error. Он будет давать ошибку, если строчка под ним уже пофикшена. Как раз можно вовремя понять, какие изменения в код поправили ошибку.
@Pitbull20121000
@Pitbull20121000 Жыл бұрын
Круто, но лучше бы запилил пару уроков по TS
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Привет. Это первое видео в плейлисте, уроки будут выходить в ближайшие пару недель. Тут решил больше поделиться историей + советами + местом, где можно попрактиковаться.
@Pitbull20121000
@Pitbull20121000 Жыл бұрын
@@ayub_begimkulov шикарно , спасибо
@user-ui3to8sg9s
@user-ui3to8sg9s Жыл бұрын
Братан, видео топ, но я не могу удержаться от замечаний. МЕНЬШЕ, СИЛЬНО МЕНЬШЕ пространных рассуждений и повторов. Посмотри на Ульби для примера. Чел говорит ОЧЕНЬ КОРОТКУЮ теорию и потом херачит практику. Так и тут, нам не надо вступление на 8 минут. Пары минут за глаза и сразу к "пользе для зрителя". Факт того, что "надо учить Тайпскрипт" итак понятен всем, кто смотрит это видео, не надо объяснять это ещё раз ~5 минут времени. Речь. Чувак, это не стримы, это Ютуб. Я понимаю что монтировать может быть лень, но насколько было бы короче твоё видео, если бы ты просто написал текст на листочке, а потом вычеркнул бы оттуда "воду"? Все вводные, подробности итп хороши для видео разговорного жанра, типа "как я стал программистом", "как я стал сеньором" итп. Но ты задаёшь конкретную тему и зритель ждёт конкретную, сжатую информацию. В остальном, очень достойно, спасибо. P.S всё вышесказанное является моим личным мнением и на истину в последней инстанции не претендует.
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Спасибо за подробный комментарий. Касательно длинны видео - да, есть такая проблема. Над речью тоже надо еще поработать. В след раз постараюсь больше уделить внимания первоначальному плану и сценарию. Еще было интересно, что ты думаешь касательно предыстории, которую я рассказал в начале, тоже вода? Или просто нужно было сократить?
@user-ol3ir6fe4g
@user-ol3ir6fe4g Жыл бұрын
Работаю пол года с тсом, пока мое мнение таково, что это говно беспонтовое. Не помогает ни мне, ни другим разрабам которые будут работать с моим кодом.
@joker202
@joker202 Жыл бұрын
Это значит что вы не разобрались с ним, возможно в команде нет опытного человека который настроил бы все и объяснял что и как работает
@promoabys
@promoabys Жыл бұрын
Утомительно бывает выводить типизацию, когда вроде всё работает. Но разбираться в чужом коде при наличии ТС гораздо проще. Если один работаешь то до определённого объема кода будет комфортно без ТС, но потом накроет )) В команде без ТС уже проблемно
@user-ol3ir6fe4g
@user-ol3ir6fe4g Жыл бұрын
@@promoabys Мне в чужом коде помогают разобраться инкапсуляция, хороший нейминг и jsdoc. А ТС заставляет разбираться еще и в чужом тсе)
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Я думаю тут ребята правильно сказали. Пока нету хорошего понимания TS и инфраструктуры вокруг него - то будет сложно с ним работать. Однако я не могу представить работу на большом проекте без строгой типизации. Я бы посоветовал не принимать решение так быстро и попробовать чуть потянуть навыки работы с типизированным кодом.
@kulakofft4
@kulakofft4 Жыл бұрын
Может ты перестанешь называть тИпы типАми? Звучит ущербно
@ayub_begimkulov
@ayub_begimkulov Жыл бұрын
Даже не задумывался об этом. Дельное замечание - постараюсь в следующих видео исправить.
@eternalluminous9186
@eternalluminous9186 9 ай бұрын
вода вода и вода
When You Get Ran Over By A Car...
00:15
Jojo Sim
Рет қаралды 13 МЛН
Хочу стать Junior React
18:42
Y_LAB University
Рет қаралды 4,3 М.
ПОЛНОЦЕННЫЙ ГАЙД по tsconfig | TypeScript
42:41
Ayub Begimkulov
Рет қаралды 9 М.
TypeScript. Полный курс
1:20:15
webDev
Рет қаралды 156 М.
Разбираемся в React JSX
13:49
Ayub Begimkulov
Рет қаралды 8 М.