* SyntheticEventData extends browser Event
From https://facebook.github.io/react/docs/events.html
Your event handlers will be passed instances of SyntheticEvent, a
cross-browser wrapper around the browser's native event. It has the same
interface as the browser's native event, including stopPropagation() and
preventDefault(), except the events work identically across all
browsers.
* make react synthetic event properties optional