Using typescript in react，stateless component not assignable to type 'React.SFC' : <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>
