Typescript is great. We use it on both the client and server in combination with babel. Typescript implements a lot of the great ES6 features, but only those that aren't Stage 0. This is where babel comes in. If you want to use things such as Async functions and await, you need to use babel because Typescript does not support them yet. However, I believe typescript 2.1 is supposed to come with a lot of new hot features, wish will allow use to remove quite a few babel plugins and let typescript take over without changing any code. Having a strongly typed language when building a large application has been amazing, I can't tell you how many times the Typescript compiler has led me directly to a problem that would have taken me 5 or 10 times as long to debug without it.