title: JSX element type does not have any construct or call signatures. Typescript
body: <p>In case <code>compose</code> is used there is an error   <code>JSX element type ‘Option’ does not have any construct or call signatures.</code>
  'redux' version - 3.7.2</p>
  
  <pre><code>import * as React from 'react';
  import { compose } from 'redux';
  import { connect } from 'react-redux';
  const { connect: fela, withTheme } = require('react-fela');
  
  const Option = compose(
      ...[
          connect(null,
              dispatch =&gt; ({
                  onClick: (name) =&gt; dispatch(setActive(name)),
              })),
          fela({
              option: ({ theme }) =&gt; ({
                  ...getControlOptionColors(theme),
              }),
          }),
      ],
  )(withTheme(({ label, name, onClick, styles }) =&gt; (
      &lt;div className={styles.option} onClick={onClick.bind(this, name)}&gt;{label}&lt;/div&gt;
  )));
  
  export class Test extends React.PureComponent&lt;any, any&gt; {
  
      private renderOptions(options) {
          return (
              &lt;div className={this.props.styles.options}&gt;
                  {options.map(option =&gt; (
                      &lt;div key={option.value}&gt;
                          &lt;Option
                              label={option.label}
                              name={option.value}
                          /&gt;
                      &lt;/div&gt;
                  ))}
              &lt;/div&gt;
          );
      }
  
  
      public render() {
          const { options } = this.props;
          return (
              &lt;div className={this.props.styles.container}&gt;
                  {this.renderOptions(options)}
              &lt;/div&gt;
          );
      }
  }
  
  export default Controls;
  </code></pre>
  
  <p>Without compose, Everything work fine.</p>
  
  <pre><code>const Element = withTheme(({ label, name, onClick, styles }) =&gt; (
          &lt;div className={styles.option} onClick={onClick.bind(this, name)}&gt;{label}&lt;/div&gt;
      ))
  
  const conponentWithConnect = connect(null,
      dispatch =&gt; ({
          onClick: (name) =&gt; dispatch(setActive(name)),
      }))(Element);
  
  const Option = fela({
          option: ({ theme }) =&gt; ({
                      ...getControlOptionColors(theme),
          }),
      })(withConnect)
  </code></pre>