<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/callemall/material-ui/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h2 dir="auto">Expected Behavior</h2>

<p dir="auto">The Select component's onChange prop should probably expect <code class="notranslate">(event: React.FormEvent&lt;HTMLSelectElement&gt;) =&gt; void</code> type.</p>
<h2 dir="auto">Current Behavior</h2>

<p dir="auto">Currently it expects <code class="notranslate">(event: React.FormEvent&lt;HTMLDivElement&gt;) =&gt; void</code>. With this even the example from docs doesn't work with Typescript as the EventTarget of HTMLDivElement doesn't have the value property.</p>
<h2 dir="auto">Your Environment</h2>

<table role="table">
<thead>
<tr>
<th>Tech</th>
<th>Version</th>
</tr>
</thead>
<tbody>
<tr>
<td>Material-UI</td>
<td>1.0.0-beta.10</td>
</tr>
<tr>
<td>React</td>
<td>15.6.1</td>
</tr>
</tbody>
</table>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have searched the <a href="https://github.com/callemall/material-ui/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h2 dir="auto">Expected Behavior</h2>
<p dir="auto">We are using withStyle() to overload our components and access classes at rendering. Note that I am unsure we were using it the way it was intended to be. Please check the code below for a quick example.</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="const styles = {
  logo: {
    maxWidth: '420px',
  },
};

export interface IProps {
  readonly classes?: any;
}

class ExampleComp extends React.Component&lt;IProps, {}&gt; {
  public render(): JSX.Element {
    return(&lt;Grid item sm={12} className={classes.logo}&gt;&amp;nbsp;&lt;/Grid&gt;);
  }
}

export default withStyles(styles)(ExampleComp);"><pre class="notranslate"><span class="pl-k">const</span> <span class="pl-s1">styles</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span>
  <span class="pl-c1">logo</span>: <span class="pl-kos">{</span>
    <span class="pl-c1">maxWidth</span>: <span class="pl-s">'420px'</span><span class="pl-kos">,</span>
  <span class="pl-kos">}</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">;</span>

<span class="pl-s1">export</span> <span class="pl-s1">interface</span> <span class="pl-v">IProps</span> <span class="pl-kos">{</span>
  <span class="pl-s1">readonly</span> <span class="pl-s1">classes</span>?<span class="pl-s1"></span>: <span class="pl-s1">any</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">class</span> <span class="pl-v">ExampleComp</span> <span class="pl-k">extends</span> <span class="pl-v">React</span><span class="pl-kos">.</span><span class="pl-c1">Component</span><span class="pl-c1">&lt;</span><span class="pl-v">IProps</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-kos">}</span><span class="pl-c1">&gt;</span> <span class="pl-kos">{</span>
  <span class="pl-c1">public</span> <span class="pl-s1">render</span><span class="pl-kos">(</span><span class="pl-kos">)</span>: <span class="pl-c1">JSX</span><span class="pl-kos">.</span><span class="pl-c1">Element</span> <span class="pl-kos">{</span>
    <span class="pl-k">return</span><span class="pl-kos">(</span><span class="pl-c1">&lt;</span><span class="pl-ent">Grid</span> <span class="pl-c1">item</span> <span class="pl-c1">sm</span><span class="pl-c1">=</span><span class="pl-kos">{</span><span class="pl-c1">12</span><span class="pl-kos">}</span> <span class="pl-c1">className</span><span class="pl-c1">=</span><span class="pl-kos">{</span><span class="pl-s1">classes</span><span class="pl-kos">.</span><span class="pl-c1">logo</span><span class="pl-kos">}</span><span class="pl-c1">&gt;</span>&amp;nbsp;<span class="pl-c1">&lt;</span><span class="pl-c1">/</span><span class="pl-ent">Grid</span><span class="pl-c1">&gt;</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
  <span class="pl-kos">}</span>
<span class="pl-kos">}</span>

<span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-en">withStyles</span><span class="pl-kos">(</span><span class="pl-s1">styles</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-v">ExampleComp</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<h2 dir="auto">Current Behavior</h2>
<p dir="auto">Since beta10 and Pull Request <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="257320048" data-permission-text="Title is private" data-url="https://github.com/mui/material-ui/issues/8178" data-hovercard-type="pull_request" data-hovercard-url="/mui/material-ui/pull/8178/hovercard" href="https://github.com/mui/material-ui/pull/8178">#8178</a>, ExampleComp signature throw an exception when overload by withStyle() as the props Classes cannot be nullable. Problem : this is forcing us to pass a dummy classes props when calling the component.</p>
<p dir="auto">Is it normal that classes is not nullable?</p>
<h2 dir="auto">Your Environment</h2>
<p dir="auto">Typescript / Visual Studio Code</p>
<table role="table">
<thead>
<tr>
<th>Tech</th>
<th>Version</th>
</tr>
</thead>
<tbody>
<tr>
<td>Material-UI</td>
<td>beta10</td>
</tr>
<tr>
<td>React</td>
<td>15.6</td>
</tr>
</tbody>
</table>