I was working on a project using Angular 1, when someone just said: Angular 2 is out. It was such a mind shift for me. I went to the then Angular website and there were three streams to working with Angular at the time: you could use Typescript, Dart or just javascript. As far as I know, Angular's compiler just compiles any of those combinations to javascript. I used Dart for another small project for fun, so I chose Dart with Angular 2, and just stuck with it. Dart is amazing. Anything you can do in Typescript, you can do in Dart and more. Both compile to javascript if you work in straight Typescript or straight Dart... and I suppose you can use a compatible library with either if you have need to.