Have to say that TypeScript is starting to grow on me. I've initially dismissed it, mostly due to seeing it used to construct unnecessary abstractions and leading to over-engineered codebases. But used in the right amounts it brings some piece of mind when refactoring, which is a feeling I've never had when working with JavaScript.
Didn't take a look at the generated code yet though.