Runtime Type Checking with PropTypes

Use React's PropTypes to ensure components receive the correct types from the Redux store, showcasing an example with mapStateToProps.
import PropTypes from 'prop-types';
import { connect } from 'react-redux';

// Define your React component
const UserProfile = ({ user }) => (
        <p>Email: {}</p>

// Define the PropTypes
UserProfile.propTypes = {
    user: PropTypes.shape({
        name: PropTypes.string,
        email: PropTypes.string
This piece of code imports PropTypes and the connect function from 'react-redux'. It then defines a React component called UserProfile which expects a user object. The PropTypes for UserProfile are then defined to ensure that the 'user' prop is an object containing a string 'name' and a string 'email', and it is required.
const mapStateToProps = (state) => ({
    user: state.user
The mapStateToProps function takes the state from the Redux store and maps the state's user property to the 'user' prop of the UserProfile component.
export default connect(mapStateToProps)(UserProfile);
This line connects the UserProfile component to the Redux store using the connect function with the mapStateToProps to feed the correct piece of state into the UserProfile's props.