Personally, I don't have experience with Dart (it seems nice, and having Google behind it is always a plus).
So for now, with a caveat that I still don't have long-lived projects developed in it, I would go with Typescript.
You can also look into Flow (http://flowtype.org) as an addition to modern ECMAScript that does types for you. You opt-in so you can start adding types to your individual files (modules) one at a time. Pretty amazing what JS looks like these days.
The book mentions Typescript a couple of times, but it doesn't discuss it in details.