I like Haxe but had my qualms with it too. To be honest, I would have to try again, but last I tried I remember at least having some issues with the type system, and the module system was OK but I definitely miss my ES modules.
TypeScript is typechecked only at translation time, as is reasonable for any language you would compile to JS. (I guess Elm breaks this mold, but at some great costs.) A side-effect is that you don't have any type information at runtime, for example.
This isn't as bad as it sounds in practice. I'm usually glad it eliminates reflection which I've rarely seen used honorably... I do miss it occasionally.
Some popular typed languages, notably Java, do type erasure on objects as well. Extending that to value types feels right in a strange way, more consistent at least.
One thing I'll mention to make The a better experience... The compiler, even on the strictest options, will still let you do a lot of hacky old school JS crap. I HIGHLY recommend integrating TSLint with almost all rules turned on and Microsoft's contrib extension. It makes Typescript code almost bulletproof.
Use the Typescript language service and experimental plugin for VSCode to show both Typescript errors and TsLint errors live with intellisense. It's a pain to set all this up at first but the experience is slick.
More or less yeah. But I worry it will take a pretty big change in direction before we can get something as crazy as types in the browser. To be fair, I would have never guessed browsers would be able to implement the current standards to the degree that they have.
It's probably worth remembering that AS3 was essentially based on the draft (later abandoned) ES4; there's still a vague agreement that most of those features should come back.
www.haxe.org