Please be careful with anointing winners, that stops people from exploring and evaluating all the options, and encourages force feeding whatever is “in” into their projects.
Well, it's pretty clear in this case. Typescript has even more traction and better integration (like VSCode's magical definition fetching) than I think anyone could have imagined. It dominated its reasonable competitor, Flow.
It's kind of a freak win. I think we can say confidently that nothing is going to usurp it.
Not like any compile-to-JS language has come close even when JS was at its worse. Now JS is so good I don't even know why I'd use another dynamically typed language.
We rarely get blindsided by what actually gets traction because almost nothing does. Something that looks like Typescript isn't going to beat Typescript. Something that's more foreign looking certainly isn't either.
I mean there's the typed functional set, PureScript, Elm, BuckleScript, Reason, etc., that compete with TypeScript on type systems why compiling to JS while offering better ergonomics for FP-style code.
They could be serious contenders only if they coexist gracefully with the rest of the JavaScript ecosystem: e.g., here's this new awesome type system, but oh... You can't use React + Redux + Material UI with it, it's might be D.O.A to a certain segment of engineers since it has no real practical application for solving today's front end engineering problems with them.
First off, not everyone likes those technologies for a variety of reasons--and solving a front-end solution a an alternative is valid. Outside Elm, PureScript, BuckleScript, and ReasonML all work fine with JavaScript libraries and have React interop/wrapper libraries already. I may dislike it, JSX is supported out of the box with ReasonML. I think some pain with JS interop could be worth the trade-off for either better types, managed IO, no null by default, immutablility by default, no option for any, exhaustivity, and the list go on--not just as a linter feature or a config option but built into the language.