title: Using typescript in react，stateless component not assignable to type 'React.SFC'
body: <p>TypeScript: 2.8.3<br>
  @types/react: 16.3.14</p>
  
  <hr>
  
  <p>The type of return in function component is <code>JSX.Element</code>, when I declare the component to <code>React.SFC</code>(alias of  <code>React.StatelessComponent</code>).</p>
  
  <p>There are three errors occured： </p>
  
  <ol>
  <li><p><code>TS2322: Type 'Element' is not assignable to type 'StatelessComponent&lt;{}&gt;', Type 'Element' provides no match for the signature '(props: { children?: ReactNode; }, context?: any): ReactElement&lt;any&gt;'</code></p></li>
  <li><p><code>TS2339: Property 'propTypes' does not exist on type '(props: LayoutProps) =&gt; StatelessComponent&lt;{}&gt;'</code></p></li>
  <li><p><code>TS2339: Property 'defaultProps' does not exist on type '(props: LayoutProps) =&gt; StatelessComponent&lt;{}&gt;'</code></p></li>
  </ol>
  
  <hr>
  
  <pre><code>interface ItemInterface {
    name: string,
    href: string,
    i18n?: string[]
  }
  
  interface LayoutHeaderItemProps extends ItemInterface{
    lang: string,
    activeHref: string,
  }
  function LayoutHeaderItem (props: LayoutHeaderItemProps): React.SFC{
    const {name, href, lang, activeHref, i18n} = props
    const hrefLang = /\//.test(href) ? `/${lang}` : ''
    if (!i18n.includes(lang)) return null
    return (
      &lt;a
        className={`item${href === activeHref ? ' active' : ''}`}
        key={href}
        href={hrefLang + href}
      &gt;&lt;span&gt;{name}&lt;/span&gt;&lt;/a&gt;
    )
  }
  
  LayoutHeaderItem.propTypes = {
    lang: string,
    activeHref: string,
    name: string,
    href: string,
    i18n: array
  }
  LayoutHeaderItem.defaultProps = {i18n: ['cn', 'en']}
  </code></pre>