Zod Makes TypeScript Even Better

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 พ.ค. 2024
  • Zod is amazing. It is not only an incredible validation library, but the direct interactions it has with TypeScript make it event better. Not having to define my types twice is a game changer and the simple yet powerful API of Zod is so nice. In this video I talk about what Zod is, show examples of how to use Zod, and talk about why it is so amazing.
    🌎 Find Me Here:
    My Blog: blog.webdevsimplified.com
    My Courses: courses.webdevsimplified.com
    Patreon: / webdevsimplified
    Twitter: / devsimplified
    Discord: / discord
    GitHub: github.com/WebDevSimplified
    CodePen: codepen.io/WebDevSimplified
    ⏱️ Timestamps:
    00:00 - Introduction
    00:28 - What Is ZOD?
    05:12 - ZOD Demo
    #Zod #WDS #TypeScript

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

  • @hunterbertoson156
    @hunterbertoson156 ปีที่แล้ว +195

    I would love to see a full tutorial on Zod! Also, an overview on your thoughts of the T3 stack.

    • @arno.claude
      @arno.claude ปีที่แล้ว +9

      I second this

    • @zapfska7390
      @zapfska7390 ปีที่แล้ว +16

      I third the t3 stack

    • @athulgeorge6744
      @athulgeorge6744 ปีที่แล้ว +11

      I 4th the T3 stack

    • @nisargbhatt300
      @nisargbhatt300 ปีที่แล้ว +6

      I 6th this with Async validation with Zod (like unique username).

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

      i 7th love to see this

  • @papadavis47
    @papadavis47 ปีที่แล้ว +11

    Well done, Kyle. I have heard of zod, but I have not used it yet. I appreciate this concise video of what it is. A full tutorial with a React Typescript project would be great. Thanks for your work!

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

    This is great, thank you Kyle! I would most certainly watch a full tutorial on Zod!

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

    Full Tutorial is always welcome :D Thanks for all the precious tips!

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

    Awesome! I never heard of Zod! But more importantly... hope you feel much better soon Kyle! Your followers will be here waiting; we won't ever leave you. Thanks for everything you do! Sending you and yours super healthy and happy healing vibes, Buddy! 😊

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

    i was waiting for this. thank you so much!!! We want full tutorial!

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

    Thank you for this great video! Wanted to note that Zod also offers a little bit of API around error messages as well.

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

    OMG OMG OMG OMG please do a full tutorial on this one, this is going to simplify my data validation logic on my node server, i also just migrated everything to ts yesterday, how awesome, also, i checked out express-validator and i didn't like how it did validation using middlewares and stuff soo this is a GOD send. Thanks GOD and thanks to you too for letting us know. love ya :)

  • @arunavabanerjee6103
    @arunavabanerjee6103 ปีที่แล้ว +35

    Hey Kyle, thanks for the video, zod seems super cool and I'd really like if could make a tutorial on it

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

    Very cool library. I really like the idea of a tutorial about it.

  • @boian-inavov
    @boian-inavov ปีที่แล้ว +17

    I love how Zod has picked up popularity lately. I’ve been using it it for a while and it’s been amazing! You just forget about the cumbersome validation part and focus on building your business logic. Also the way it’ll give you a ready made object in the way you’d been expecting it is just god sent! Glad that more people are covering it 👏

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

      Zod is no different to Yup, in fact, Zod is basically a clone of Yup with better static typing. Also, Zod is incredibly slow. Compare it to industry standard validators and it's like 300x slower to validate anything. You shouldn't be using Zod on the server side (it's that bad)
      The hype around Zod is real, but that doesn't make it good. It's just social media marketing and online influencers pushing it.

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

    Showing the form use case for Zod was super helpful. I finally get it!

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

    Looks pretty good, personally I created a validator based on Joi which returns the object you are validating typecasted as the object type your validation schema is describing, which is a little more convenient than having to call infer every time.

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

    thanks for the brief explanation. exactly what i was looking for 👍

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

    We really need a full tutorial! 🔥

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

    Yep Kyle, We want a full tutorial, I love how you simplify these things but still show how valuable and powerful they are

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

    Hey Kyle, Thank you for this video, i'd love to see a full tutorial on Zod!

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

    Aw longtime no see, I'm glad that u reach 1M sub ! Thanks for all your tutorials and keep up the good works !

  • @NewHellz-
    @NewHellz- ปีที่แล้ว

    hey there, may i ask something ??
    Is there possible if to create progress bar, with numered inside can change automatically with the date i want to??

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

    Yes, please a video with most common recipes will be good to have 🤩

  • @akashsinha5148
    @akashsinha5148 ปีที่แล้ว +8

    That would be wonderful 👍 please do a full tutorial. As your tutorials are small and feature packed.

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

    Thank you, you are awesome👌 in explaining new concepts👏👏. Yes i would love to see you cover a full tutorial on zod using typescript.👍👍

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

    Great tool, I use it a lot in NodeJS HTTP APIs to validate requests to the server and get the TypeScript type too.

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

    I would love to see full tutorial too, your didatics is very good!

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

    Always great content chief (Y) . . . Keep it up

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

    Hi Kyle
    Thx for showing us Zod, I really think it’s supercool!
    I was wondering: Which validation library have you been using before Zod?

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

    That would be really great to have a tutorial on Zod

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

    I am intrigued! So, please make a tutorial on this game-changing way of doing things!

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

    I remember watching the video 2 days ago and thinking, why would I ever need this ..
    Well, today I needed to create a very complex form validation and I gotta say, Zod is doing a great job so far

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

    would love to see a full tutorial on Zod! And also please compare with Joi, ajv, zod

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

      Comparing Zod to Ajv would be embarrassing....for Zod >_>

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

    Yep, I've been using it for the past few months and it's a must-have for schemaless dbs.

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

    I am using NestJs heavily for most of my codebase
    I define DTO's and nest js frameworks helps me to validate each of objects/types for request I make. In that case i would not need this
    Before that we have been using JSON schema validators where we define schema and validate the DTO's
    But now zod is permutation and combination of all - like even loash functions are wrapped, this is super useful and must give a try
    Thanks for quick overview

  • @ReconNite
    @ReconNite ปีที่แล้ว +13

    The problem I ran into with zod was that, not only was it super slow compared to other validators it was also very limiting as to what could be checked, or what could be coerced from one value to another. Although I still use it on some projects, I started to move over to superstruct for my more recent projects as it allows me to define custom refinements/coercions/types with little trouble. Of course this means that you lose the "built-in" or modular aspect of zod, superstruct makes it a lot easier for targeted validation.

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

      Try TypeBox, it's based on industry standards and it's also 300x faster than Zod.

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

    Great, please do the complex tutorial! I am looking forward! :)

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

    definitely would love to have a full tut on Zod

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

    Hmm this seems more of a form validation library rather than improvement on typescript. Thanks a lot Kyle ❤️

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

    thanks ,Kyle a full tutorial would be greate 😍

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

    Great intro to zod thanks!

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

    FULL TUTORIAL PLEASE!!!!! You are awesome!!!!

  • @focusroom_
    @focusroom_ 11 หลายเดือนก่อน

    Great! want to learn more about this

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

    it's very interesting not just for frontend form validation but also for backend API validation

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

    Kyle, thanks for this. I'm tooling up for projects with React, MUI, Redux, and have been looking into Formik which validates (primarily) with Yup. I'm not loving the Formik/Yup side, so it'll be nice to give Zod a spin, especially since it's TS-first, as am I. As someone else noted, my primary questions will be about custom rules, field/field comparisons, and async/sync server validations. Zod MUST perform here or I need to go with an established standard.

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

      Looks like Zod is the winner with Hook Forms.

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

    cool, i had made something similar years ago
    it was returning correct type after parse also
    but this is more solid and better than my ancient prototype thingy of course
    defiantly will use it!

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

    Great, exactly what I needed in the right time for a React project but for someone who's worked with Angular FormBuilder (which is a built-in module), you'd know how Angular is underrated.

    • @AmanSingh-px5if
      @AmanSingh-px5if ปีที่แล้ว +1

      and exactly why react is so popular, not every project will need all the built in modules or even of the type that are baked in.

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

      @@AmanSingh-px5if you don't have to use all built-in modules. The compiler removes unused modules from the bundle.

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

    Great stuff. ill try it out

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

    I'm glad you said "comments below." I'm a full stack developer, but it wasn't until just now that I figured out where the TH-cam comments were located ;)

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

    Zod in a plain vanilla JS/TS project is definitely a win. No question about it. Would be interesting so see a video on how it integrates with framework like Angular and its built-in form validators.

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

    Please do a full Tuturial. I have a question, with zod do I still need create Interface(TS) for static checking? How can I reuse zod in multiple component(I thinking i react component).
    Thank you

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

    Yeah. I’d love to watch the full tutorial!

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

    Erf, i'm sticking to AJV when doing api-first design and reusable component, because jsonSchema, even if it is a bit more tedious, it is reusable in all language, and can serve as first class API doc with swagger (jsonSchema are almost 100% compatible to swagger)
    And DTO with annotation are more readable for other stuff, I then use class-validator

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

      Makes sense. JSON portability FTW

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

    Hey. I'm just curious to know if it's possible to chain multiple regex expressions for the same input field and display different error messages .

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

    Love a full tutorial especially with a form generated out of json data and field required based on a ‘complete switch’

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

    The problem I found with Zod is the transforms. It starts to blur the edges between validating and parsing.
    But my manager found a good library (I don't remember it's name for the top of my head) which uses the TS types and makes it a type validator at compile time, rather than runtime, using vite plugins. It seems like a better suit for us as we already have the types setup, rather than using Zod to Infer the types.

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

      can you share what library you are using ?

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

    Hey Kyle! Please make a full tutorial of Zod including also Zorm (React form with Zod). Thank you!

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

    Yes! Full tutorial please.

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

    Is it ok to gather then, that this would be runtime TypeScript that automatically generates the compile time types for you?

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

    Would love to see a full zod tutorial.

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

    I'm about to do my first typescript form validation without any framework hence no framework provided form validation methods. This video just dropped right on time

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

    I'd like a video comparing this with other form validation libs such as Joi. I;ve used Joi in the past and Im really curious to see if zod offers better usability. Thanks.
    Love your videos.

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

    A comparison with yup would be appreciated!

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

    Do you suggest using a query selector on MUI Typography? I see you're using it here.

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

    zod reminds me a whole lot of joi.
    Are there any benefit to using zod over joi or vice versa?

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

    Waiting for the full tutorial !!!

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

    Super cool! This is like Joi, but specifically for TypeScript.

  • @pieter5466
    @pieter5466 9 หลายเดือนก่อน

    Zod looks exactly like every software library should.

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

    Would be cool to see you have a talk with Theo and his T3 stack 🙂

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

    Seems quite useful, thanks for sharing. Although I do think you are abusing the ?. operator in your demo (why would your HTML elements be undefined?), making it more difficult to read.

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

    I would also love to see a full tutorial on it

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

    Cool. Full tutorial would be great

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

    Thanks Kyle, I would like to watch a tutorial with NodeJs data validation

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

    You must be kidding! I was just trying to get deep with Zod and you posted a video! Great timing, thanks. I believe "everyone" would LOVE a full tutorial about Zod and why not... typing APIs both with static typing and validating the actual response

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

    It can check if integer too that's quite nice

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

    Yeah Zod is cool, but it also kinda depends what you are doing IMO. If you use Zod to validate endpoints that you create with tRPC, then it seems to be great. If you use it for validating forms on frontend with react-hook-form, then yup might just be slightly better. That's at least from my personal experience comparing these two. yup also has a nice Typescript experience and the infer type from schema like the z.infer you shown here. Zod isn't the first schema validation library to utilize Typescript, but it seems people act like it is :)

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

    would be nice have a zod tutorial for advanced user/passwords forms.

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

    Kyle - full tut like you did on prisma would be nice to watch

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

    You should show it with the same validation messages that your if/else validation has. Often certain messages need to be used, not just whatever messages your validation library produces.

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

    Full tutorial 🙌

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

    In angular they have forms with full typescript support 🎉 for everyone working with angular

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

    Can i use zod to 'autommaper' ( like automapper from c# ) for convert one type to another? (Ex: IUserResponse from api to IUserState to use in React )

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

    Yup vs Zod , add a comparison in next video ❤ we are waiting

  • @paschalokafor9043
    @paschalokafor9043 6 หลายเดือนก่อน

    Can I use Zod in place of Yup when using formik?

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

    Yes Bring the zod validation video

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

    In my previous project I used typescript, formik and yup for validation but Zod looks far more easier and manageable, I'll appreciate a full tutorial

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

      I don't think so, Formik still make the form validate way more robust and manageble. Or maybe we can try Formik + Zod :D

  • @0xSLN
    @0xSLN ปีที่แล้ว

    great! full tutorial plz!!

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

    Waiting for full tutorial ❤

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

    At 1:25 ish I paused to read that Introduction off their site and once I read "The goal is to eliminate duplicative type declarations." - it clicked. As I'm on the tail end of the "learning" process, I hate getting comfortable with something (typescript in this case) only for a new/hot library to come along and improve it, because it also means I have yet another damn thing to learn before I feel ready to apply. However, I've actually recently run into that exact issue where I've had to declare the same type in two different places and it just felt gross, but I couldn't see a way around it; now we have Zod and that's awesome.

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

      @@kishirisu1268 Shhhh, Typescript can hear you. You're real too, Typescript, we promise (don't worry, it won't resolve).

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

    An essential for any API

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

    Full tutorial would be awesome

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

    can you make a complete typescript REST api tutorial video. Love your content btw.

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

    So it manages some easy to screw up parts for you? I'm a bit confused.
    I don't have much experience, but how rich do you think a third party library should be?

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

    Hey Kyle, just curious if you can do a video on full stack flutter?

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

    Great video as always, can you make a video about PWA

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

    Hello. please do a full tutorial. I have already started to use zod. Many thanks.

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

    Can I use with pure javascript or in express js

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

    Awesome vid!
    Even though Zod is awesome and pragmatical for type validation the only reason I still wouldn't add it to a backend project is that it's not an ORM as well, so using TypeORM is more of a gain even if the whole schema validation is more verbose.
    For frontend projects I feel like using it is not that worth it since I use Angular and things like FormBuilder along with classes/interfaces pretty much do the job for a frontend scope, leaving the hard validations for the backend as it should be.
    I can't help but feel like Zod has gained much popularity solely due to React and the culture of recurring to a lot of third-partys for specific objectives.

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

    Zod is insane, I used it for API response validation, great features.

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

    Is it better than Yup? Will it work with react-hook-form?

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

    What's your thoughts on decorators vs zod?

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

    Magical video.

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

    Good Video. Make a video on Zod like you did on Prisma