Typescript brings great tooling which cannot be matched by anything else.

There are several things here that need correcting:

  1. Last I checked, to get TypeScript benefits, you have to rename all your *.js files to *.ts, unless you use VSCode, which doesn’t work for me because the keyboard shortcuts are all screwed up (KB shortcut layouts don’t work as advertised on my Dvorak KB layout)
  2. You claim that “you simply cannot get the same tooling” without static types, but I’ve never seen a large TypeScript app that was 100% correctly typed. Adding any annotations everywhere is effectively the same as having an untyped program, and using any type annotations at all is optional — meaning, unlike Haskell, C++ or Java, you can compile a TypeScript program that is not well-typed.
  3. You certainly can get tree shaking without TypeScript. See Rollup.
Like what you read? Give Eric Elliott a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.