default proptypes code example

Example 1: react props.children proptype

import PropTypes from 'prop-types'

...

static propTypes = {
    children: PropTypes.oneOfType([
        PropTypes.arrayOf(PropTypes.node),
        PropTypes.node
    ]).isRequired
}

Example 2: proptypes array of objects

MyComponent.propTypes = {
  items: PropTypes.arrayOf(
    PropTypes.shape({
      code: PropTypes.string,
      id: PropTypes.number,
    })
  ),
};

Example 3: proptypes oneof

import PropTypes from 'prop-types';

MyComponent.propTypes = {
  // You can declare that a prop is a specific JS type. By default, these
  // are all optional.
  optionalArray: PropTypes.array,
  optionalBool: PropTypes.bool,
  optionalFunc: PropTypes.func,
  optionalNumber: PropTypes.number,
  optionalObject: PropTypes.object,
  optionalString: PropTypes.string,
  optionalSymbol: PropTypes.symbol,

  // An object that could be one of many types
  optionalUnion: PropTypes.oneOfType([
    PropTypes.string,
    PropTypes.number,
    PropTypes.instanceOf(Message)
  ])
};

Example 4: propTypes

import PropTypes from 'prop-types';

class Greeting extends React.Component {
  render() {
    return (
      <h1>Hello, {this.props.name}</h1>
    );
  }
}

Greeting.propTypes = {
  name: PropTypes.string
};

Example 5: proptypes.objectof

Pokemon.propTypes = {
  pokemon: PropTypes.shape({
    name: PropTypes.string,
    id: PropTypes.number,
    base_stamina: PropTypes.number,
    base_defense: PropTypes.number
  })
}

Example 6: proptypes

Basic types:
- PropTypes.any: The prop can be of any data type
- PropTypes.bool: The prop should be a Boolean
- PropTypes.number: The prop should be a number
- PropTypes.string: The prop should be a string
- PropTypes.func: The prop should be a function
- PropTypes.array: The prop should be an array
- PropTypes.object: The prop should be an object
- PropTypes.symbol: The prop should be a symbol

Renderable types:
- PropTypes.node: The prop should be anything that can be rendered by React
  a number, string, element, or array (or fragment) containing these types
- PropTypes.element: The prop should be a React element

Instance types:
- PropTypes.instanceOf(class): The prop should be an instance of class

Multiple types:
- PropTypes.oneOf: The prop is limited to a specified set of values,
  treating it like an enum
- PropTypes.oneOfType: The prop should be one of a specified set of
  types, behaving like a union of types
  
Collection types:
- PropTypes.arrayOf: ensures that the prop is an array in which all 
  items match the specified type.
- PropTypes.objectOf: ensures that the prop is an object in which all 
  property values match the specified type.
- PropTypes.shape: ensures that the prop is an object that contains a set 
  of specified keys with values of the specified types.
- PropTypes.exact: use for strict (or exact) object matching