At first I was really turned off by JSX. HTML in your JavaScript? Yuck! Then I migrated a 12k lines JS + 4k lines Angular templates to TypeScript. I didn't get any of the benefit of static typing in all of those html files. That was really upsetting to me. Getting compile time static safety on JSX components is awesome.