反应propTypes:objectOf与形状?

PropTypes.objectOf之间有什么区别PropTypes.shape文档中

// An object with property values of a certain type
optionalObjectOf: PropTypes.objectOf(PropTypes.number)

// An object taking on a particular shape
optionalObjectWithShape: PropTypes.shape({
  color: PropTypes.string,
  fontSize: PropTypes.number
})

什么objectOf时候应该使用shape?什么时候应该使用