This is why learning typescript generics is important

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ย. 2024

ความคิดเห็น • 68

  • @st-jn2gk
    @st-jn2gk ปีที่แล้ว +67

    You're like if "Common Sense" was a programmer. You don't have any ridiculous esoteric pseudo-advice to give, but you just stick to the basics and make cool stuff. Validates "the basics" in a climate where you either use vim and program in c/rust, or you use vscode and write next 13 apps. I'm really glad I found this channel.

  • @leonauswien
    @leonauswien ปีที่แล้ว +4

    "That's something that's really important when building a libary, is start with the interface - how a people paying to consume your functions / interface"
    Such a valuable tip, applies to any function / structure; it helps a lot to find a good "how" to think about the user first.
    Really good content! Not much new stuff in this video for me, but subbed for the conciseness and the calming voice.

  • @jly_dev
    @jly_dev 9 หลายเดือนก่อน +2

    The more difficult parts of TS (generics, mapped/recursive/conditional types, etc) are not easy to learn from the docs by themselves. Gabriel Vergnaud's Type-Level TypeScript was a really helpful resource for me, and I've heard good things about TypeHero

  • @philheathslegalteam
    @philheathslegalteam ปีที่แล้ว +7

    Didn't take you long to become my favourite tech TH-camr. Perfect no-nonsense approach to videos, ability to call things out for what they are and diving into technical content like this and that custom framework you're on currently. Your videos are a goldmine when it comes to reaffirm knowledge and see different use cases for different strategies.
    Really appreciate the work you're putting into this channel and its content!

  • @monstajoedev
    @monstajoedev ปีที่แล้ว +5

    Such an amazing tutorial. I used it before to create a local storage hook, which is one of those rare cases where you have to create a generic function.

    • @treyrader
      @treyrader 8 หลายเดือนก่อน

      I used it for the same situation a few days ago. good stuff

  • @dannycollazo9165
    @dannycollazo9165 ปีที่แล้ว

    Such a great video! This made me realize that not all TS is difficult and actually fun to write. Love the content, keep it up!

  • @abdiraqiibmohummed9781
    @abdiraqiibmohummed9781 ปีที่แล้ว

    great videos man , i eat breakfast while watching your videos , always great content , keep it up man !!!

  • @TheEchinox
    @TheEchinox ปีที่แล้ว

    To the point. As per usual, Cody delivers! Keep it up!

  • @florianwebdev
    @florianwebdev 7 หลายเดือนก่อน

    Well done explaining generics! You earned a new subscriber

  • @megamind452
    @megamind452 ปีที่แล้ว +3

    Great quality of info, nicely done 👍

  • @Ganidv
    @Ganidv ปีที่แล้ว

    It’s a great video, thank you. I hope there will be more videos about this topic. Great work!

  • @leebobtheblob87
    @leebobtheblob87 ปีที่แล้ว

    6:11 extends key of TStore
    7:19 using generic to control user set input
    9:12 callback signature
    12:14 ReturnType

  • @bowaller6892
    @bowaller6892 ปีที่แล้ว +2

    Im not a guy of typescript but I try to learn on the future. This video was awesome about generics good example and explain.

  • @barssavas9938
    @barssavas9938 ปีที่แล้ว +1

    Such an amazing educative content. I learned a lot from you. And I am applying it to my and my company's codebase.

  • @mikecebul
    @mikecebul ปีที่แล้ว +3

    This was extremely helpful.

  • @juanmacias5922
    @juanmacias5922 ปีที่แล้ว

    This was impressive, generics seems to be my next step in understanding TS. :D

  • @muhammad_ramadan
    @muhammad_ramadan ปีที่แล้ว

    Fantastic video, great job 👏

  • @doc8527
    @doc8527 ปีที่แล้ว +1

    Though there is not "class keyword" involved, but the way you handle it is just OOP, because you want all the "object" to inherit the get/set function, that's why the "generic" kicks in. It could be a pattern for library author, but pretty much not for application level app.

  • @eshw23
    @eshw23 ปีที่แล้ว

    Dont stop making videos ever lol some of these random topics end up saving me in my project

  • @imsirpak
    @imsirpak ปีที่แล้ว +2

    Thanks for the video!

  • @slahomar1497
    @slahomar1497 ปีที่แล้ว

    As a senior JavaScript/TypeScript developer, if you're considering branching out into another backend programming language, what would be a wise choice? Many developers commence their journey with JavaScript, and the job market is becoming increasingly competitive in this domain. In this context, how do you view languages like Go, Ruby, and Java?

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว

      I’d be interested in working with go personally

  • @elmalleable
    @elmalleable ปีที่แล้ว

    super cool, i build something similar a month ago because i just wanted redux toolkit kind of functionality in an old angular js file using rxjs
    i had to use jsdocs but still works nice

  • @nidhishsrivastava4868
    @nidhishsrivastava4868 ปีที่แล้ว +1

    I just used it while creating a hook for storing my items in local storage

  • @nsatempe
    @nsatempe 20 วันที่ผ่านมา

    What is the extension that puts the solid yellow line around your current function/scope? It doesn’t appear to be in the Bearded theme or rainbow indent and I didn’t see it in your themes video.

  • @fluntimes
    @fluntimes 10 หลายเดือนก่อน

    As I was watching I was wondering the difference between and . I guess I'm more familiar with the second structure.

  • @Ikakoo2410
    @Ikakoo2410 ปีที่แล้ว

    Thanks Cody

  • @goodgoing4615
    @goodgoing4615 ปีที่แล้ว +1

    This question is off-topic, but I wanted to ask if the glasses you are using are some kind of blue filter glasses. I've been having dry eye-related issues lately because of coding.
    Thanks for all the videos.They are very valuable.

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว +1

      No they are just normal glasses

  • @AjayGopalShresthaAGS
    @AjayGopalShresthaAGS ปีที่แล้ว

    I tried using this pattern with useMap hook in react, The definition is the same for this and useMap, but the useMap value type has type of all values combined.

  • @tushar8133
    @tushar8133 ปีที่แล้ว

    Wow! Thanks!

  • @SeibertSwirl
    @SeibertSwirl ปีที่แล้ว

    Good job babe!!

  • @sabirameen5672
    @sabirameen5672 ปีที่แล้ว

    I too had the same problem when working on my side project. Nextjs caching is too aggressive imo. For invalidating router cache, they provide the router.refresh().

  • @Sherloqui
    @Sherloqui ปีที่แล้ว

    Great video, to the point!

  • @randomforest_dev
    @randomforest_dev ปีที่แล้ว +1

    nice one!

  • @EmmanuelOdii80
    @EmmanuelOdii80 ปีที่แล้ว

  • @abdulrahmanalsabagh3334
    @abdulrahmanalsabagh3334 ปีที่แล้ว

    The video reminds me on the days where u used to hate TS 😅
    Anyway
    Very cool video 🎉

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว

      I’m less of a noob now 😆

  • @goa213
    @goa213 ปีที่แล้ว

    Awesome video!

  • @fullstack_journey
    @fullstack_journey ปีที่แล้ว

    Nice tuts 👍

  • @aigabuskira165
    @aigabuskira165 ปีที่แล้ว +1

    this is good, and thanks for the video.

  • @carlosvalderrama3207
    @carlosvalderrama3207 ปีที่แล้ว

    Can you do a video showing us your VSCode theme?

    • @h4nto772
      @h4nto772 ปีที่แล้ว

      it’s bearded stained blue

  • @treyrader
    @treyrader 8 หลายเดือนก่อน

    this is solid lol

  • @rand0mtv660
    @rand0mtv660 ปีที่แล้ว +1

    Do get/set really require generics here? Since types for those are constructed from passed in data there is no need to be able to pass generics to those functions to tell it what types it has or to override/extend something. Instead of using K for example, I think for this particular case it would be better to just write "key: keyof T" without exposing generics here.
    Good example nonetheless!

    • @VictorMachadoDeFranca
      @VictorMachadoDeFranca ปีที่แล้ว +2

      doing this way, you lose type inference for the values
      by making a generic constraint, typescript will infer the value at the specific key declared as K
      T[keyof T] is the union of all types of T attributes

    • @rand0mtv660
      @rand0mtv660 ปีที่แล้ว

      @@VictorMachadoDeFranca You are right. I had to see it for myself and I tested this and by not using generics in this example and using what I said in my comment, return type for .get() will be a union of all types from all keys of T. Same goes for .set(), value accepted will be a union of all those types. Huh, I thought generics were unnecessary here, but I guess I was wrong.
      Well, you learn something new every day :D

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว +1

      I guess typescript isn’t smart enough to know what key specifically is being passed into the callback

  • @mjsigg
    @mjsigg ปีที่แล้ว

    Just asking but why not just make a class for the store and use a constructor? Trying to learn TS.

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว +3

      No reason, I just default to functions usually

    • @ameerashhab6721
      @ameerashhab6721 ปีที่แล้ว +1

      Class based programming is a style, and so is functional programming. You can pick whatever you want. All companies I worked for though, their projects are functional. Classes are annoying to work with, or rather OOP style.

  • @codyf1
    @codyf1 ปีที่แล้ว +2

    Is this future me?
    I really hope not, because I don't like javascript that much

  • @yashsolanki069
    @yashsolanki069 ปีที่แล้ว

    Is this a shades of purple theme?

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว +1

      Bearded theme stained blue

    • @yashsolanki069
      @yashsolanki069 ปีที่แล้ว

      @@WebDevCody thanks ser!

  • @aspirinemaga
    @aspirinemaga ปีที่แล้ว +1

    0:20 as a non ts dev, I almost vomit seeing that code just for "dev-friendly-development"

    • @elpolodiablo5486
      @elpolodiablo5486 ปีที่แล้ว

      As a TS dev, I almost vomit seeing your stupid comment.

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว +1

      Why? At 20 seconds in the only typescript code I use is defining a type and passing a generic

    • @oscarljimenez5717
      @oscarljimenez5717 ปีที่แล้ว

      Yeah, you have never use generics in any language :)

  • @MarkPanado
    @MarkPanado ปีที่แล้ว

    2 space indention is hard for my eyes

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว

      sorry, it's the format I use

  • @aleaallee
    @aleaallee ปีที่แล้ว

    Generics seem kinda complex and off-putting to me.

  • @michakrecisz5100
    @michakrecisz5100 ปีที่แล้ว

    it's very cool but nobody should call that "easy to read".