Q:

Should I use Flow's exact types for components' props?

I'm using Flow to describe my components props. I would usually use it like so:
class MyComponent extends Component {
  props: {
    user: { name: 'string' },
  }
  render () {
    return <div>{this.props.user.name}</div>
  }
}

Lately, we had some discussions in the office if it's better to define props in this way or rather using Flow's exact object types in which the user type would be defined like so {| name: 'string' |}.
I was wondering if there are some guidelines on when to choose one over the other.

A:

In the end, we decided to go with exact types so Flow warns us if we pass to an element more props than it needs.

