loading...

re: How to specify the shape of an object with PropTypes VIEW POST

TOP OF THREAD FULL DISCUSSION
re: Not sure if I understand your question correctly, but you would use PropTypes on a component, not an object. So, if you have a User component, you...
 

Hey, no sorry what I meant was the user was an object, I should have denoted it with the shape type.
Although I wasn't sure if the user would automatically be required if all of its props were required, like this:

user: PropTypes.shape({
    id: PropTypes.string.isRequired  // required property user
    name: PropTypes.string.isRequired // required property of user
})

I figured out that in the above, those props are only required if the user is passed in at all. To also ensure a user is passed, not just a valid user I needed:

user: PropTypes.shape({
    id: PropTypes.string.isRequired
    name: PropTypes.string.isRequired
}).isRequired

Shall leave it here in case it helps anyone else.

code of conduct - report abuse