This rule ensures that all your React components have propTypes set for all of their used properties.
However, it ignores common injected properties such as those introduced by Redux's mapDispatchToProps
and
mapStateToProps
. See eslint-plugin-react/#553
for more details.
Examples of incorrect code for this rule:
const Foo = ({ propMissingType }) =>
(<span>
{propMissingType}
</span>);
Examples of correct code for this rule:
const Foo = ({providedProp, injectedProp}) =>
(<span>
{providedProp}
{injectedProp}
</span>);
const mapStateToProps = state => ({
injectedProp: state.fooBar
});
Foo.propTypes = {
providedProp: PropTypes.string.isRequired
};
export default connect(mapStateToProps)(Foo);
Consult the documentation for the original rule here: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prop-types.md