A good explanation!
I like TypeScript. In my opinion, the real power of TypeScript comes when doing code refactors. It's far too easy to make a typo in JS and have it go silently undetected until something subtly goes wrong because a variable is undefined after the refactor.