fwiw, TypeScript -&gt; Babel is doable, if painful. I have it set up in my repo here: <a href="https:&#x2F;&#x2F;github.com&#x2F;thomasboyt&#x2F;manygolf" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;thomasboyt&#x2F;manygolf</a><p>I agree that Flow currently the superior type system (and, unlike TypeScript, not a complete nightmare to set up if you&#x27;re wanting to use Babel&#x2F;Webpack instead of manually running file builds through your editor like it&#x27;s 2002), but TypeScript has significantly more momentum behind it making it a much more practical solution for basically anyone who doesn&#x27;t currently work at Facebook. There are also several exciting new features coming to the type system that brings it closer to parity with Flow:<p>Non-nullable types: <a href="https:&#x2F;&#x2F;github.com&#x2F;Microsoft&#x2F;TypeScript&#x2F;pull&#x2F;7140" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Microsoft&#x2F;TypeScript&#x2F;pull&#x2F;7140</a><p>Control flow type analysis: <a href="https:&#x2F;&#x2F;github.com&#x2F;Microsoft&#x2F;TypeScript&#x2F;pull&#x2F;8010" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Microsoft&#x2F;TypeScript&#x2F;pull&#x2F;8010</a><p>I wish TypeScript tried to better-integrate with the greater JavaScript ecosystem and stop acting as a language of its own. Thankfully, the &quot;es6&quot; target gets it pretty close (I think it still compiles some es7 features, meaning you can&#x27;t have Babel handle everything yet), and the non-standard module syntax seems to be a thing of the past.<p>I hope the gap can be bridged between the TypeScript and Babel communities, so that TypeScript can one day be shipped as a Babel transform, same as Flow.