Pro tip: type-check your JavaScript the easy way!




Sure, TypeScript isn’t for everyone. But sometimes you want types and type-checking… well, turns out you can use the TypeScript compiler to check the types on your JavaScript – let me show you how!

More info: https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html

Original source


21 responses to “Pro tip: type-check your JavaScript the easy way!”

  1. That is exactly what I wrote a blog post about https://dev.to/dakmor/type-safe-web-components-with-jsdoc-4icf
    I really love it and it's quite powerful to "just" have JavaScript with type safety 🙂

    what I did not found out yet is how users could use those types I am providing.
    Generally, typescript only reads typescript definition files from the node_modules folder… is there a way to automatically generate those definition files from JavaScript?

  2. This is good. Something new for the day. Thank you. This also makes complete sense for utilities as it also enforces the best practice is documenting the API. But I still would spend time to go to pure typescript and avoid any. Maybe because I am spoilt by Scala 😁

  3. That's helpful, however I was wondering if there was a way to set a type on variables and function parameters in the source files (like in your main.js file for example)

  4. JavaScript type checking with VSCode is actually very nice.
    Here is another way a bet a lot of the people didn't know.
    You can define some custom types with jsdocs using @typedef then use it in other places. But you can also import these types from other files using a sort of dynamic-import like syntax, let say:
    /* @param {import("./otherfile.js").SomeType} param1
    For this to work, this "otherfile.js" needs to be a module. I do this thing where I create a types.js file with all my back-end data structures and a "export default undefined" at the bottom. This file is not going to be fetched from the network since it's only imported inside jsdocs.

  5. JSDoc is actually still the only way to add a description to your functions and variables, even TypeScript ones.
    You can actually use it in place of TypeScript types in .ts files. You can't do all the type manipulations that TypeScript allows of course, but in many cases it's enough.
    I think JSDoc is the unsung hero of all this. Not many really use it correctly, and the official docs are IMO quite lackluster…

Leave a Reply