If a prop is declared with type validation but required:false, the validation will fail when passing either null or undefined as the value.
I think that the type validation should only occur on none required props if an actual value (not null or undefined) has been passed. I believe this is similar to issue #1070.
Here's a JSBin demonstrating this.