Use ‘unknown’ instead of ‘any’ in TypeScript (Try / Catch error handling)

Sdílet
Vložit
  • čas přidán 6. 06. 2024
  • 👉 NEW React & Next.js Course: bytegrad.com/courses/professi...
    Hi, I'm Wesley. I'm a brand ambassador for Kinde (paid sponsorship).
    👉 Add authentication to your app FAST: bit.ly/3QOe1Bh
    👉 NEW React & Next.js Course: bytegrad.com/courses/professi...
    👉 Professional JavaScript Course: bytegrad.com/courses/professi...
    👉 Professional CSS Course: bytegrad.com/courses/professi...
    👉 Discord: all my courses have a private Discord where I actively participate
    🔔 Email newsletter (BIG update soon): email.bytegrad.com
    ⏱️ Timestamps:
    0:00 data: unknown
    1:06 ts-reset
    1:36 error: unknown
    4:59 Handle unknown
    8:03 Utility function
    #typescript #typescripttutorial

Komentáře • 35

  • @ByteGrad
    @ByteGrad  Před 8 dny +1

    👉 NEW React & Next.js Course: bytegrad.com/courses/professional-react-nextjs

  • @elenamikhaylova5086
    @elenamikhaylova5086 Před 16 dny +1

    Thank you for explaining this well, i have banged my head on JS error handling for so long

  • @ismoiljonabduqahhorov5825
    @ismoiljonabduqahhorov5825 Před 10 měsíci +5

    Hello ByteGrad I was struggling with error handling and your tutorial really helped dealing with errors loved your content good luck

  • @vincenzocristiano135
    @vincenzocristiano135 Před 7 měsíci +1

    This is pure gold! Thanks a lot!!!

  • @npaul1440
    @npaul1440 Před 7 měsíci +8

    Your tutorials and content are A Class. Just get a better microphone if possible. Thanks

  • @MailarYT
    @MailarYT Před 10 měsíci +5

    Your really good explaining, keep going Cheers

  • @meka4996
    @meka4996 Před 8 měsíci +1

    Amazing! Thanks

  • @user-vb4vs5yz6w
    @user-vb4vs5yz6w Před 6 měsíci +1

    thank you for sharing this topic

  • @solosdev6946
    @solosdev6946 Před měsícem +1

    Thanks finding a solution for this :D

  • @loydcose2780
    @loydcose2780 Před 5 měsíci +1

    This is awesome!

  • @honkhonkv2236
    @honkhonkv2236 Před 2 měsíci +1

    Hello, awesome channel for a noob like me! I was wondering, at 10:42 in our utility function couldn't we just omit to type the message as string and instead in the return do something like "return message.toString()" ?

  • @WilliamShrek
    @WilliamShrek Před 8 měsíci +2

    That's exactly how I handle request errors in our projects. 😅 Those Python develelopers cannot agree with Java developers on error response, and they both think it is easy to handle those errors in the client side.

  • @bheemkumarthami
    @bheemkumarthami Před 3 měsíci

    Thanks a lot. keep going

  • @user-zj9jd8hd7q
    @user-zj9jd8hd7q Před 7 měsíci +3

    We still not consider the case where "message" is also an object

  • @scide-x7242
    @scide-x7242 Před 9 měsíci

    Thank you chris

  • @Axorax
    @Axorax Před 3 dny

    I didn't know there was an unknown type 😮

  • @antonapalanyuk338
    @antonapalanyuk338 Před 7 měsíci

    What about to save mark as 'any' and use following: console.log(error?.message || error?.stack || error); It is suitable for all error data types

  • @AFE-GmdG
    @AFE-GmdG Před 9 měsíci +5

    I would write
    ... else if (error && typeof error === "object" && "message in error && typeof error.message === "string") { ...
    If there is a message in an error object but it isn't a string, it should possibly use the default error message instead.

  • @ajaychandel9976
    @ajaychandel9976 Před 4 měsíci +1

    cool

  • @mryo_
    @mryo_ Před 6 měsíci +1

    Thanks.
    export const getErrorMessage = (error: unknown) => {
    if (error instanceof Error || (error && typeof error === "object" && "message" in error && typeof error.message === "string")) {
    return error.message;
    } else if (typeof error === "string") {
    return error;
    }
    return "Something went wrong";
    };

  • @charuwaka1
    @charuwaka1 Před 3 měsíci

    use a generic API response wrapper

  • @panbotuk
    @panbotuk Před 7 měsíci

    Why use unknown and any in typescript?

  • @user-ik7rp8qz5g
    @user-ik7rp8qz5g Před 7 měsíci

    const res = ... as unknown as any

  • @namstel9225
    @namstel9225 Před 7 měsíci

    I prefer
    typeof error?.message === "string"

  • @deatho0ne587
    @deatho0ne587 Před 10 měsíci +2

    What if error.message is is an object, HTML, etc... Casting to string then would not be really safe.

    • @ByteGrad
      @ByteGrad  Před 10 měsíci +2

      Good point

    • @deatho0ne587
      @deatho0ne587 Před 10 měsíci +1

      It is good for another video about TypeGaurds maybe.

    • @ciach0_
      @ciach0_ Před 9 měsíci

      Then that would be [object Object]

    • @deatho0ne587
      @deatho0ne587 Před 9 měsíci

      The thing is even if it is an object should you trust it for display purposes?

  • @charuwaka1
    @charuwaka1 Před 3 měsíci

    use zod

  • @silenthooman
    @silenthooman Před 7 měsíci

    the fn is async, and he used the then, man just use await