facebook/prop-types

`oneOfType()` does not seem to allow all types specified

liamness opened this issue · 2 comments

I am running into an issue where oneOfType() is passed in types of shape and string but is only allowing string seemingly.

Reproduced here (using a simplified version of types I have encountered on a project I am working on), https://jsfiddle.net/liamness/1du5jvwt/, with the warning:

Failed prop type: Invalid prop `schema[1]` supplied to `ComponentName`, expected one of type [string].

The real issue is being masked here; it's that name: PropTypes.string.required, is invalid. It's .isRequired, not .required.

When I fix that, I correctly see no error.

I see the proper error message when I use just the shape - iow, oneOfType seems to be suppressing the actually helpful error message from shape, so that seems like a bug worth fixing.

You're right, that fixes the issue. I imagine what's happening is that incorrect arguments to oneOfType are being disregarded. Thanks!