So would I. This kills me about JavaScript - so many powerful programming features, but no way to mange code properly. I think this more than anything is what results in thousand line .js monstrosities.
"I am also not a fan of the optional static typing."
I though this was bad, in the context of Python, a few years ago, when the idea was being floated for that language. Having experimented with Scala and Cobra late last year, I think types in function arguments are a fine idea. Mainly because they're the 80/20 point for type verbosity, performance, tooling and code maintainance. Type args give the compiler a lot of information for optimising calls, they help with an important class of automated refactorings, they help with IDE tooltipping/browse-ahead, and they document function calls in the code for the next guy - not knowing the types of functions is a problem imvho for Python codebases - or at least it is for me.