$30 off During Our Annual Pro Sale. View Details »

TypeScript tips that could save your life

TypeScript tips that could save your life

Lucas Santos

May 11, 2023
Tweet

More Decks by Lucas Santos

Other Decks in Technology

Transcript

  1. TypeScript tips
    that could save your life

    View Slide

  2. who am I_
    {twitter, youtube, linkedin…}.lsantos.dev
    software engineer_
    [email protected]

    View Slide

  3. typescript can be tricky sometimes

    View Slide

  4. so let's cut to the chase_

    View Slide

  5. tsconfig extension_

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. It's not only for bases

    View Slide

  12. It's not only for bases

    View Slide

  13. type_ testing

    View Slide

  14. one native way: *.typetest.ts files

    View Slide

  15. one native way: *.typetest.ts files
    https://lsantos.dev/keychain-pull

    View Slide

  16. the (more) native way

    View Slide

  17. vitest

    View Slide

  18. tsd https://lsantos.dev/tsd-lib

    View Slide

  19. move errors to types

    View Slide

  20. instead of this

    View Slide

  21. do this

    View Slide

  22. branded types_

    View Slide

  23. UUIDs are the perfect example

    View Slide

  24. to brand a type

    View Slide

  25. to brand a type

    View Slide

  26. even better

    View Slide

  27. but well… Why isn't this working

    View Slide

  28. but well… Why isn't this working
    To be continued…

    View Slide

  29. but there's another example

    View Slide

  30. type guards_

    View Slide

  31. but well… Why isn't this working

    View Slide

  32. now we have something

    View Slide

  33. but this if…

    View Slide

  34. assertion functions

    View Slide

  35. assertion out of tests

    View Slide

  36. understand your enums_

    View Slide

  37. enums produce valid JavaScript

    View Slide

  38. enums produce valid JavaScript

    View Slide

  39. numeric enums

    View Slide

  40. string enums

    View Slide

  41. constant enums

    View Slide

  42. constant enums

    View Slide

  43. obrigado_
    lsantos.dev

    View Slide