With TypeScript [1] you can get the best of both worlds: statically checked code with tool-assisted refactoring plus the ability to drop down to JS when the type system doesn&#x27;t support what you want to do. (Of course, you&#x27;ll now need to be careful about it and try to isolate the dynamic code from the rest of the system and present a static facade to it)<p>[1]: <a href="http:&#x2F;&#x2F;www.typescriptlang.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.typescriptlang.org&#x2F;</a>