Essentially it boils down to whether you prefer a cohesive all-in-one framework/platform (angular2) or a collection of semi- and fully-independent libraries (react). Pretending that one of those options is the right fit for everyone is not productive.
The only thing really missing from Angular 2 compared to the React ecosystem is jsx. Angular 2 and RxJS (and if you want throw in ngrx/store) allows a heavy focus on immutability, unidirectional data flow, centralized state, etc. that ends up very similar to the React ecosystem conceptually.
Both allow native cross-platform mobile with React Native (react) and NativeScript (angular2), and Angular 2 also gives you a nice hybrid/webview option with Ionic 2. Angular 2 also gives you a bit tighter integration with TypeScript, if that is your preference (which it is mine).
Personally, for me, I like both a lot but the full-framework and tight TypeScript integration fit my use cases and personality better.
I don't think JSX fits Angular 2 - it sticks to "views are markup based and code is in controller" traditional MVC which I prefer to JSX.
You mentioned TS but I feel like you understated it - it's the selling point for me. I have used TS + React but it's not the same thing - Angular was written with/for TS and it uses it to leverage all the advantages. React migrated from ES5 to incrementally add ES6 support and it shows. Also nobody uses flow outside of React unlike TS which has a decent community even outside of Angular and plenty of 3rd party type definitions.
Definitely agree about the deep TypeScript integration with Angular 2 due to it being written in TypeScript. That is the core reason I prefer it, it is absolutely awesome in that regard. (And the same is true with RxJS).
I'm using typescript with React right now...and typescript does a decent job with jsx checking.
(saved me from a lot of missing / wrong prop name errors)
anyway, does typescript support some kind of template-string validation for angular2? If so, I'm going to really re-consider angular2 for my next project
Typescript doesn't directly, but Angular2 does (or will, this is just coming online) - our offline compiler converts your html templates into TS, and then regular TS typechecking can take over.
> does typescript support some kind of template-string validation for angular2
No, and that's the reason I mention jsx as a missing feature from Angular 2. There is no compile time or refactoring support for templates, whereas with TypeScript and jsx you get that.
The only thing really missing from Angular 2 compared to the React ecosystem is jsx. Angular 2 and RxJS (and if you want throw in ngrx/store) allows a heavy focus on immutability, unidirectional data flow, centralized state, etc. that ends up very similar to the React ecosystem conceptually.
Both allow native cross-platform mobile with React Native (react) and NativeScript (angular2), and Angular 2 also gives you a nice hybrid/webview option with Ionic 2. Angular 2 also gives you a bit tighter integration with TypeScript, if that is your preference (which it is mine).
Personally, for me, I like both a lot but the full-framework and tight TypeScript integration fit my use cases and personality better.