An aside: check out BuckleScript's OCaml -> JS work. It's even better than Typescript's output.
Some examples:
https://github.com/BuckleScript/bucklescript-addons/tree/mas...
Some examples:
https://github.com/BuckleScript/bucklescript-addons/tree/mas...
Good enough that I usually debug the Javascript output. Typescript has the cleanest transpilation I've ever seen so I don't have any problems with using it. And if Typescript ever falls out of vogue I'm confident just compiling down to JS one last time and being done with it. Really the language is so easy to get rid of its harmless.