Фишки TypeScript о которых ТЫ НЕ ЗНАЛ!

Поділитися
Вставка
  • Опубліковано 24 гру 2024

КОМЕНТАРІ • 269

  • @VasyaFF
    @VasyaFF Рік тому +145

    Ulbi, красавчик! Можно вот этого вот побольше?

    • @MrTruth-rc2fr
      @MrTruth-rc2fr Рік тому +26

      Хахах, знакомые слова)

    • @АртемийКолотов-з4ь
      @АртемийКолотов-з4ь Рік тому +15

      Контент в кайф!

    • @VasyaFF
      @VasyaFF Рік тому +2

      @@MrTruth-rc2fr Это ЧатГПТ (подмигивает)

    • @anatoliiilescu839
      @anatoliiilescu839 Рік тому +2

      чтобы вы еще хотели ? думаю ради вас все будет!!!

    • @VasyaFF
      @VasyaFF Рік тому +5

      @@anatoliiilescu839 Порядочные люди знают, что здесь не стол заказов. Но ради продвижения ролика было бы хорошо устроить срач в комментах.

  • @maksimtsvetkov3764
    @maksimtsvetkov3764 Рік тому +25

    На 24 минуте (Utility Types) при объявлении типа с таким же набором полей как у одного из полей интерфейса, как альернативный вариант записи можно просто записать type Birthday = User['birthday'], тогда конструкция valueOf не потребуется и читабельность будет чуть проще.
    Спасибо за видео!

    • @ixplo
      @ixplo Рік тому +6

      это проблема TS. почти любой тип можно описать почти бесконечным количеством вариантов. И никто не знает всех лучших вариантов ) я не знаю ни одного настоящего синьора в TS. Все постоянно в поиске. И это дико. Дико, что TS втыкается в 90% проектов, но никто не умеет в него нормально )

  • @dzmitrypasavetsdimapolonez2644
    @dzmitrypasavetsdimapolonez2644 Рік тому +41

    Пили ещё. Не затянуто, познавательно, хотелось бы увидеть, весь список подобных лайфхаков которые ты перечислил в видосе.

  • @IzyLifeVlog
    @IzyLifeVlog Рік тому +7

    Да, это здоровский формат! Быстрая иньекция новой информации, каждый день по 30 мин и уже будешь знать больше чем многие колеги!

  • @MrRbSecond
    @MrRbSecond Рік тому +3

    Братан, хорош, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?

  • @falsetrue7910
    @falsetrue7910 Рік тому +5

    Узнал новое, не смотря на то, что с ТС давно на ты
    Спасибо!

  • @geek-peek
    @geek-peek Рік тому +4

    По поводу enum: они бывают не только строковые, ещё и числовые - хотя в рантайме это просто число, но на этапе разработки ты можешь писать не === 1, а что-нибудь имеющее смысл.
    И зачем они нужны:
    1. Чтобы не использовать строки в коде, и чтобы не было соблазна их повторять
    2. Чтобы обрабатывать входящие данные: у меня на проекте есть типы газоанализаторов, и приходят они как число 0-255, а на фронт нужно отдать название. Здесь помогли 2 enum - числовой и строковый

  • @ded-insult
    @ded-insult Рік тому +3

    Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?

    • @ralfsimpa7423
      @ralfsimpa7423 Рік тому +1

      ахахахах а ты харош)

  • @holfizz7868
    @holfizz7868 Рік тому +6

    это какой то п**дец. Я еле еле что то вкурил. И я понял что надо учиться и учиться. Тимур ты реально крут. Спасибо тебе❤❤

    • @dmitrykabanov9458
      @dmitrykabanov9458 Рік тому

      По сути, все что показано в данном видео это вспомогательные инструменты ТС.
      Это не обязательно использовать но надо знать, по тому что эти инструменты помогают писать код таким образом, чтобы предотвращать не корректный код. Если интересно, почитай про тайп гарды, анкноун и Невер.
      Всякие енамы, как по мне, не нужны. Они просто побыстрее работают

    • @holfizz7868
      @holfizz7868 Рік тому +2

      @@dmitrykabanov9458 Я обязательно займусь этим но позже. Мне очень сложно это воспринимать так рано:)

  • @BOCbMOU
    @BOCbMOU Рік тому +7

    27:43 Если нужно добавить один дженерик в функцию и нет необходимости экстендить его от чего-то, то можно просто добавить запятую:
    В таком виде это уже не будет JSX, а будет именно дженерик. И это актуально только для .tsx файлов, в .ts файлах с этим проблем нет.

    • @sjdjjsjsjs3991
      @sjdjjsjsjs3991 10 днів тому

      Как же хорошо, что я не использую react в своих проектах

    • @BOCbMOU
      @BOCbMOU 10 днів тому

      @sjdjjsjsjs3991 странно гордиться своими недостатками.

  • @gigor1433
    @gigor1433 Рік тому +8

    Очень интересно, большую часть знал, но пара пригодится точно. Очень интересно о каких ещё приёмах ты бы мог рассказать

  • @DubinArtur
    @DubinArtur Рік тому +3

    12:50 если надо, чтобы функция принимала стоки, которые относятся к enum, нужно в качестве аргумента функции указать ‘${UserRole}‘. Функция пропустит и enum значения как UserRole.Admin, так и "admin"

  • @ArtyomSamsonchik
    @ArtyomSamsonchik Рік тому +3

    На 23:50 можно вытянуть тип Birthday гораздо проще. У TS есть синтаксис доступа к типу по индексу, и выглядит это так:
    type BirthDay = User['birthDay']
    И не нужны ни Pick, ни ValueOf.

    • @maximkarpov4405
      @maximkarpov4405 Рік тому +1

      так его valueOf по сути тоже самое

  • @dmitrykabanov9458
    @dmitrykabanov9458 Рік тому +4

    Про тайпгарды понравилось. Хороший пример

  • @docaner
    @docaner День тому

    Повелся на клик-бейт. Долго ждал момента провала. В итоге тебе вручили оффер 😁
    Я уже 2 собеса прошел: обещали дать обратную связь через 1-2 недели. В итоге никто не пришел на фан-встречу. Первый собес у меня в городе - просто поболтал с руководителем.
    Второй собес в Москве (по телемосту сдавал) - были алгоритмы: попалась задача на бинарный поиск. Я в шоке был, что спустя год учёбы в универе в голове хоть что-то отложилось.

  • @dmitrykabanov9458
    @dmitrykabanov9458 Рік тому +35

    Было бы круто посмотреть видео про микрофронтенд.
    Условно - есть базовый Шелл, в котором есть базовый роутинг. И каждый роут это отдельный сервис, который прописан в ремоутс

    • @ixplo
      @ixplo Рік тому +1

      как меня триггерят такие темы :) микрофронты -- это решение, когда полный бардак в конторе надо как-то спасать. Микрофронты -- это приговор, когда всё просрали имхо

    • @parabellum577
      @parabellum577 Рік тому

      @@ixplo ну да, не могу представить кейс, когда такое говно реально нужно применять

    • @ixplo
      @ixplo Рік тому +1

      @@parabellum577 кейсы есть, но почти всегда за сопоставимое вложение ресурсов можно сделать что-то другое, что не повлияет на качество продукта

  • @YuryGoltsman
    @YuryGoltsman Рік тому +2

    Пару новых штуковин узнал. Спасибо

  • @Quentinrei
    @Quentinrei Рік тому +1

    Ещё не досмотрел, но уже заходит, крутой ролик

  • @farruhsydykov8420
    @farruhsydykov8420 Рік тому +4

    Супер! Давай больше о TS, backend, web3!

  • @ОленаКуніцина
    @ОленаКуніцина Рік тому +4

    Как всегда годный контент. React, Typescript форева😂

  • @deanArtDev
    @deanArtDev Рік тому +1

    1 кейс что пришел на ум, когда ты используешь не константный объект а через ValueOf получаешь типы и потом используешь строки или что там в readonly то если надо заменить значение ты будешь бегать по проекту и менять занчения везде, если же использоать константный объект (импортировать его да) то значение нужно заменять в одном месте

  • @17u5h
    @17u5h Рік тому +1

    крутяк!
    Заскринил некоторые моменты, записал в "заметки"

  • @ekaterina1991
    @ekaterina1991 Рік тому +3

    Реакт и js такого формата очень жду

  • @shittywizzard5727
    @shittywizzard5727 Рік тому +2

    Лаконично и ёмко, хорош, давай еще)

  • @luckytima2315
    @luckytima2315 Рік тому +3

    Бро давай побольше TS, он сейчас везде просто нужен )) Ну и фишки ванильного JS тоже хотелось бы узнать))

  • @denispepper2830
    @denispepper2830 Рік тому +2

    Спасибо! Круто! Норм формат!

  • @frednoby8531
    @frednoby8531 Рік тому +1

    Интересные нюансы, благодарю!

  • @elena_sva
    @elena_sva Рік тому +7

    В примере где с помощью ValueOf берём тип birthday можно просто взять TypeNameWithBirthday['birthday']

    • @UlbiTV
      @UlbiTV  Рік тому +5

      Справедливо, если нужно одно поле, пиком можно несколько цепануть

    • @BOCbMOU
      @BOCbMOU Рік тому

      @@UlbiTV если надо достать тип значений из нескольких полей, то как раз пик тут лишний, по прежнему можно несколько ключей перечислить:
      TypeNameWithBirthday['id' | 'age' | 'birthday']
      Пик всё же как раз для создания нового объекта с некоторыми старыми ключами и изначальными типами ключей. Доставать через него значение нелогично.

  • @tagnati5585
    @tagnati5585 Рік тому +2

    Какой же офигенный видос. Спасибо большое за материал

  • @Ramosok
    @Ramosok Рік тому +2

    Круто, очень много нового узнал.

  • @sergeymalakhov2438
    @sergeymalakhov2438 Рік тому +1

    Классное видео.Очень зашёл такой контент

  • @TheProfessionalGambler
    @TheProfessionalGambler Рік тому +1

    Интересные фишки, спасибо)
    20:40 пример не совсем корректный, когда мы делаем объект константой _obj as const_ , то мы его поля не сможем изменить, а в функцию мы передаем аргументом объект с похожим типом и он никак не связан с obj. То есть ТС только проверяет на соответствие типов параметра и аргумента, а не логику внутри функции.
    23:30 пример для Extract лучше с доки _type T0 = Extract;_ по простому это как пересечение. В твоём примере непонятно зачем указывать union, который и получаем.

  • @_GyG_
    @_GyG_ Рік тому +1

    Коммент в поддержку) как всегда все круто!

  • @Quentinrei
    @Quentinrei Рік тому +1

    Больше таких роликов !

  • @BobbyBob21
    @BobbyBob21 Рік тому +2

    Ещё офигенная вещь это inner. Для динамических типов это просто незаменимая вещь.

  • @Levitizen
    @Levitizen Рік тому +1

    Круто, спасибо. Можно вот этого вот почаще

  • @МихаилСтудицкий

    очень интересный обзор!
    спасибо большое!

  • @strogalev
    @strogalev 22 дні тому

    Спасибо, узнал о моментах, о которых не догадывался. Спасибо, очень полезно!

  • @РобертСабиров-и8л

    Быстрые гайды офигенно заходят!) Правда слушаю на 1.75, поэтому они прям супер быстрые)) Материал полезный, даже если все знаешь, лишний раз повторишь. Спасибо за труды!

  • @bulatsafin-cg3tg
    @bulatsafin-cg3tg Рік тому +1

    Спасибо огромное! Действительно, без всякой воды. Сразу видно технический подход и понятный даже для гуманитария

  • @sergsergey4251
    @sergsergey4251 Рік тому +3

    Спасибо за полезное видео

  • @gluktd
    @gluktd Рік тому

    Нижайший поклон добрый человек! Очень понравилось! knowledge sharing в массы

  • @ruslanla4654
    @ruslanla4654 Рік тому +2

    круто!!

  • @ВадимКокорев-й3ъ

    Привет, я давно смотрю твои видео, очень интересный контент, нравится твоя манера говорить и способность вести диалоги. Ты в каком-то видео говорил, что для начинающих программистов крайне важно попасть на хорошую работу, с хорошим начальником и коллективом, и я хотел бы узнать твое мнение, я очень начинаешь бэкэндер и фронтэндер, учился по разным курсам в интернете и твоим видео, подтянул JS, HTML и CSS, наконец-то подвернулся вариант с работой, которую долго искал, и согласился на первый же вариант, и тут началось: рамках обучения мне дали задание сделать фулстек проект, разработать приложение для ведения реестра, с базой данных на 10 таблиц, с 15000 строк, осуществить все в laravel при помощи php, сказали: ну делай, а теперь спустя небольшое время, начинается возмущение, что я медленно делаю и ничего не успеваю, сижу просто учусь. И я не знаю, так и должно быть, и это я правда медленно развиваюсь или все же должна быть какая-то помощь? Очень интересно твое мнение, буду рад, если ты ответишь, заранее больше спасибо
    P.s. я тоже закончил РТУ МИРЭА в 2021)

  • @Лаурахит
    @Лаурахит Рік тому +1

    Действительно интересные приемы которые хотелось бы попробовать в деле.

  • @ДанилБилоголовский-ф5ч

    Спасибо, довольно полезный контент

  • @vladimirliankevich1361
    @vladimirliankevich1361 Рік тому +3

    Спасибо тебе большое за такие познавательные видео!!!!!!! Как всегда по полочкам

  • @v.demchenko
    @v.demchenko Рік тому

    Интересная тема по поводу типизированых переиспользуемых компонентов. Наткнулся на много проблем типизации от создании темы до типизации пропсов.

  • @Moishe_Rubinstein
    @Moishe_Rubinstein Рік тому +2

    strapi сделай бро! :)

  • @bambalbino
    @bambalbino Рік тому +1

    Очень круто!!! Спасибо

  • @НиколайКудряшов-к3й

    Как всегда коротко и по делу, очень полезное видео!

  • @ИванБорисов-б1ж
    @ИванБорисов-б1ж Рік тому +1

    Спасибо за видео, очень полезно. Хотелось бы видеть больше таких видео

  • @igortrifonov9339
    @igortrifonov9339 Рік тому +6

    По поводу первого случая, не нужно делать функцию, это лишнее. Можно просто написать const _: never = car.brand, и TS будет ругаться, если мы попадет в дефолт.

    • @BOCbMOU
      @BOCbMOU Рік тому +2

      Есть ещё проще вариант на 4.9+ версии: car.brand satisfies never;

    • @НаильШайхинуров-п7л
      @НаильШайхинуров-п7л Рік тому

      @@BOCbMOU Огонь! Не знал что такое есть

  • @alexmarch
    @alexmarch Рік тому +1

    хочу собеседования ! но любой контент твой хорош

  • @demetrxx
    @demetrxx Рік тому

    Всё, что нужно, в одном месте, быстро и понятно 💣💥

  • @dfkadyr
    @dfkadyr Рік тому +1

    Спасибо Тимур

  • @stmihan_
    @stmihan_ Рік тому +2

    Очень круто, но надеюсь ты сделаешь всё-таки видео по react query.

  • @---Maksim---
    @---Maksim--- Рік тому +1

    Спасибо, на 1.25 смотрится отлично)

  • @MrJettann
    @MrJettann Рік тому +1

    Топ, испытываю проблемы с тс постоянно, с подобным контентом становится проще!

  • @JenechekDv
    @JenechekDv Рік тому

    стильно, модно, молодёжно. Давай ещё.

  • @raff_m_d6971
    @raff_m_d6971 Рік тому +2

    контент топ, продолжай

  • @natalyaiv3414
    @natalyaiv3414 Рік тому +1

    Тимур, спасибо! 👍

  • @qwe-rty-
    @qwe-rty- Рік тому +1

    Супер, надеялся еще на MappedTypes посмотреть, по ним видосик будет?)

  • @lLoseControll
    @lLoseControll Рік тому +1

    Круто, продолжай)

  • @foldisnomistake
    @foldisnomistake Рік тому +1

    круто, нужны еще такого плана видосы!

  • @МаксимЯщиковский

    формат огонь. можно ли погрузиться глубже в дженерики с след видео ?

  • @saskirakosyan5268
    @saskirakosyan5268 Рік тому +1

    The best russian bloger

  • @l1mejkeee628
    @l1mejkeee628 Рік тому +1

    Больше такого контента!!!! Пожалуйста!!!

  • @АлексейБомко-ь1ш
    @АлексейБомко-ь1ш 6 місяців тому

    Крутые ролики у тебя, смотрю и практикуюсь) !спасибо!

  • @ЕвгенийНагаев-п9ч

    Тимур это прям очень полезное видео)) спасибо

  • @infodusha
    @infodusha Рік тому +1

    Привет! в первом примере надо возвращать результат функции never чтобы вычисляемый тип значения был правильный (а то иначе туда добавится undefined)

  • @nothingg1759
    @nothingg1759 Рік тому +5

    Очень заходит! Понравится всем, спасибо большое!

  • @alexanderkomanov4151
    @alexanderkomanov4151 Рік тому +2

    Суперр! Огромное спасибо!

  • @NikitaKachan-y5i
    @NikitaKachan-y5i Рік тому +1

    Оч интересно, контент топ, идея топ

  • @АнатолийГорбов-о1ь

    Супер видео! буду ждать продолжения и по тайпскрипту и по другим темам! отличный формат!

  • @reversoid8170
    @reversoid8170 Рік тому +1

    Очень круто и полезно! Не знал про Exclude)

  • @alexshubin1
    @alexshubin1 Рік тому

    Лайков - 10% от просмотров - офигенный контент!

  • @max_mgtow
    @max_mgtow Рік тому +1

    Вперёд братан, контент в кайф! 👍👏🔥

  • @skobanev
    @skobanev 6 місяців тому

    Добрый день. Спасибо Вам огромное. А существует курс по TS для новичков в Вашем формате? Вы просто идеально информацию преподносите.

  • @dkaygorodov
    @dkaygorodov Рік тому +1

    Тимур, спасибо большое. Очень полезное видево!)

  • @MrDANPTZ
    @MrDANPTZ Рік тому

    Просто супер! Полезного было достаточно, что приятно
    Спасибо за ролик!

  • @ruslangilyazov7733
    @ruslangilyazov7733 Рік тому

    Больше type script & react & redux, please! Я знаю что есть много на канале про это но еще хочется

  • @DemetriyArh
    @DemetriyArh Рік тому +1

    Круть. А о декораторах можешь рассказать?

  • @tojiboyevumidjon
    @tojiboyevumidjon Рік тому +2

    Спасибо большое! Боже я только что узнал то что я зря мучился целый день

  • @МаксимФуторной
    @МаксимФуторной Рік тому +1

    У разработчиков есть скрытый сервис со списком актуальных фичей?) Вчера только подобное видел у малоизвестного ютубера, но все равно рад, что смог еще раз пересмотреть у тебя

  • @battleroyalegamer9087
    @battleroyalegamer9087 Рік тому +1

    Подскажите на каком сайте лучше всего изучать javascript, или возможно есть какие-нибудь толковые курсы?

  • @NikOroferov
    @NikOroferov Рік тому +1

    Контент зашёл, даю знать

  • @ДмитрийКривов-ы5б

    очень полезно, спасибо

  • @tagnati5585
    @tagnati5585 5 місяців тому

    Как я понял, энамы лучше обычных юнионов тем что значениям можно давать более читабельные имена и при рефакторинге даже если где-то есть пересекающиеся строковые значения в разных энамах, при переименовывании чужие значения затронуты не будут.

  • @valentinaicheva7846
    @valentinaicheva7846 Рік тому

    Очень полезно! Хочется еще подобный контент с фишками💥

  • @belomax100
    @belomax100 Рік тому +1

    Слушай совет для видео, сделай ролик в котором ты как уже прошаренный программист испытываешь чатGPT , я просто планирую через него обучатся и хотел бы понимать что он может и может ли вообще

  • @ПроПрограммирование

    хороший формат

  • @abdurazzoxabdullayev3705
    @abdurazzoxabdullayev3705 Рік тому +2

    Было бы хорошо если сделал видосики как Michigan TypeScript по ts

  • @ШамильДжакеев
    @ШамильДжакеев Рік тому +2

    Тимур привет, у меня давно в голове висит вопрос про conditional конструкцию. type Aboba = T extends string ? Abo : Ba, как по мне, как-то не очень вяжется если читать эту строку как "... если тип Т расширяет тип стринг, то ...", что мы расширяем?, как мы можем расширить все великое множестово всевозможных строк еще одной частной строкой, какя-то дичь? Возможно для англоговорящих такая последовательность очевидна, но я лично долго не мог вдуплить шо вообще происходит тупа из-за формулировки. Что думаешь на сей счет?

    • @ruslanshikhaliev9341
      @ruslanshikhaliev9341 Рік тому +1

      T extends (относится к типу/является подтипом/входит в группу типа) string

  • @vladimirkuban426
    @vladimirkuban426 Рік тому +2

    Супер!

  • @anastasiyachemutkina5119
    @anastasiyachemutkina5119 10 місяців тому

    тема TS очень интересна, коммент поддержки!

  • @АлександрКозлов-л9р

    Ахренеть, не знал, что в JSX элементы можно указывать generic
    Если кому интересно, в TS есть механизм - "брендирование". Позволяет избежать ошибок, когда вместо id, условно, товара, передали id продавца.

    • @АлександрКозлов-л9р
      @АлександрКозлов-л9р Рік тому

      Ещё про infer пара слов, правда на англе, но с хорошим акцентом)
      ua-cam.com/video/hLZXJTm7TEk/v-deo.html

  • @vanmihaylovich
    @vanmihaylovich Рік тому +6

    Видео о том, как
    обойти грабли TS.

    • @dontcode
      @dontcode Рік тому +1

      Тс и есть грабля, поверх джаваскрипта)

    • @macmasek
      @macmasek Рік тому

      Шаг 1: перестаньте использовать Typescript

  • @Ramosok
    @Ramosok Рік тому +1

    А главное как теперь матёрым синьёром рассказать, что простой обьект лучше енама?)) я это и так интуитивно предпологал.

  • @dimabaturo2492
    @dimabaturo2492 Рік тому

    Как обычно контент в кайф