DEV Community

Discussion on: How to specify the shape of an object with PropTypes

Collapse
 
samthomson profile image
Sam Thomson

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
})
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Shall leave it here in case it helps anyone else.

Thread Thread
 
thebuildguy profile image
Tulsi Prasad • Edited

Thanks Sam, my eslint was throwing error and this fixed it!