website/content/blog/type-checking-javascript-files-using-typescript.md
2024-01-15 19:33:57 -05:00

2 KiB

title date draft tags math medium_enabled
Type Checking Javascript Files Using Typescript 2023-09-19T15:30:02-04:00 false
JS
false false

There's a nice and easy way to type check Javascript files without having to set up an entire project or adjust the code. It only takes understanding some of the flags within the Typescript compiler.

To install:

npm install -g typescript

Typecheck a file:

tsc --checkJs --allowJs example.js --noEmit
Flag Description
--checkJs Allow JavaScript files to be a part of your program.
--allowJs Enable error reporting in type-checked JavaScript files
--noEmit Disable emitting files from a compilation.

Since tsc is primarily a compile, it by default produces code output. We're only concerned with seeing any type errors, so we throw away the compiled code with the flag --noEmit.1

Now it's likely that we're using features of the standard library or the DOM in our Javascript code. We need to include a couple flags for Typescript to understand them.

Flag Description
--target Set the JavaScript language version for emitted JavaScript and include compatible library declarations.
--lib Specify a set of bundled library declaration files that describe the target runtime environment.

You can see tsc --helpfor the long list of options. Here's an example for targetting ES2022 with the DOM library.

tsc --checkJs --allowJs --target es2022 --lib es2022,dom example.js --noEmit

  1. In an earlier version of this post, I had --outfile /dev/null instead of --noEmit. Veyndan kindly reached out and showed how the --noEmit flag is more flexible in allowing for exported classes. ↩︎