title: Effects of default value for props that will be destructured in a React Component
body: <p>Let's say I have a simple component like this one (assume everything is imported properly):</p>
  
  <pre><code>const SpecialButton = (props) =&gt; {
  
      const { css, ...rest } = props;
  
      return (
          &lt;Button 
              className={`special-btn ${css}`}
              {...rest}
          &gt;
              Click here
          &lt;/Button&gt;
      );
  };
  
  SpecialButton.defaultProps = {
      css: '',
      rest: {}
  };
  
  SpecialButton.propTypes = {
      css: PropTypes.string,
      rest: PropTypes.object
  }
  </code></pre>
  
  <p>I'm setting a default value of <code>{}</code> for the rest props and I'm also using object destructuring to pass it to the Button component.</p>
  
  <p>So, assuming that who uses the SpecialButton is not passing anything else besides the css props, my questions are:</p>
  
  <ol>
  <li>Since {} is an instance of the Object class, when I use the <code>...</code> does it dump all the properties of the Object into the Button component?</li>
  <li>Is there any problem in not specifying a default value for the rest props?</li>
  <li>Do you guys have a better suggestion about how to handle this case?</li>
  </ol>
  
  <p>I'm adding the prop type and default prop for completeness, but I'm not 100% sure if I need to.</p>
  
  <p>Thank you.</p>