Does this actually catch any more types of bugs than vanilla JS React would? (Besides simple things that would be caught in an initial run, like not returning an element from render? Does it catch misspelled props, for instance?) It seems like a lot of increased verbosity to justify any gains.
Yes, the props and state are defined by interfaces so if you try to pass in a prop object which does not meet definition of the interface, typescript will complain. I think typescript is not so bad of an option until native ES6 support becomes more mainstream.
Btw, flow (http://flowtype.org) already comes with React propTypes integration. When you write `x: React.PropTypes.number.isRequired`, it knows how to correctly translate that to static types.