PropTypes.exact 和 PropTypes.shape 之间的区别

Difference between PropTypes.exact and PropTypes.shape

有什么区别

PropTypes.exact({
  name: PropTypes.string,
  age: PropTypes.number
})

PropTypes.shape({
  name: PropTypes.string,
  age: PropTypes.number
})

我很乐意提供任何帮助

基本上 exact 如果您的道具对象包含额外的 属性 在通过 PropTypes.exact({ }).

声明时未提及,则会给您警告
  // An object taking on a particular shape
  optionalObjectWithShape: PropTypes.shape({
    color: PropTypes.string,
    fontSize: PropTypes.number
  }),

  // An object with warnings on extra properties
  optionalObjectWithStrictShape: PropTypes.exact({
    name: PropTypes.string,
    quantity: PropTypes.number
  }), 

参考:https://reactjs.org/docs/typechecking-with-proptypes.html#proptypes