I evaluated AngularJS2 at the end of April, and have not revisited it since, so here are the reasons I decided not to migrate to AngularJS2, based on the Beta release back then... (Note that I am not familiar with TypeScript.)
- Template and controller in the same file and tied directly together (via decorations on the "controller") make for poor MVC separation (?) Wait, are components like directives?
- Styles being scoped to a component is cool, but that's just Web Components.
- Component Router exposes route parameter names in Router.navigate. May be an unnecessarily tight coupling (changing position requirement to name requirement).
- AngularJS 2 is not yet production ready (at least the Beta I evaluated). Errors with `npm start`... (poorly defined command in standard tooling)
- Standard npm scripts leave a lot of crap in the source code directory. Don't distribute libraries and frameworks via NPM for gads sake!
- TypeScript's type system seems to suck. Witness Exhibit A: Promises.
- Again with the promises: How do you make a promise which is resolved with type A but rejected with type B?
- TypeScript promises again: OMG look at .all()!!!!!
- Cordova / SystemJS
And here's a mystery I had not managed to decode back then:
- Providers are automatically found based on type? How does Angular know the type since there is no Typescript type info at runtime?