React / TypeScript: Consumir contexto a través de HOC

Estoy tratando de implementar el ejemploontexto de consumo con un HOC de la documentación React (React 16.3) en TypeScript (2.8) y falla miserablemente. Como referencia, el código del manual de React:

const ThemeContext = React.createContext('light');

// This function takes a component...
export function withTheme(Component) {
  // ...and returns another component...
  return function ThemedComponent(props) {
    // ... and renders the wrapped component with the context theme!
    // Notice that we pass through any additional props as well
    return (
      <ThemeContext.Consumer>
        {theme => <Component {...props} theme={theme} />}
      </ThemeContext.Consumer>
    );
  };
}

Lo mejor que se me ocurrió:

export interface ThemeAwareProps {
  theme: string;
}

const ThemeContext = React.createContext('light');

export function withTheme<P extends ThemeAwareProps, S>(Component: new() => React.Component<P, S>) {
  return function ThemedComponent(props: P) {
    return (
      <ThemeContext.Consumer>
        {theme => <Component {...props} theme={theme} />}
      </ThemeContext.Consumer>
    );
  };
}

class App extends React.Component {

  public render() {
    return (
      <ThemeContext.Provider value={'dark'}>
        <ThemedButton/>
      </ThemeContext.Provider>
    );
  }
}

ThemedButton.tsx:

interface ThemedButtonProps extends ThemeAwareProps {
}

interface ThemedButtonState{
}

class ThemedButton extends React.Component<ThemedButtonProps, ThemedButtonState> {

  constructor(props: ThemedButtonProps) {
    super(props);
  }


  public render() {
    return (
      <button className={this.props.theme}/>
    )
  }
}

export default withTheme(ThemedButton);

El problema es la última línea export default withTheme(ThemedButton)). El compilador de TypeScript se queja de que

Argumento de tipotypeof ThemedButton no es asignable al parámetro de tiponew () => Component<ThemedButtonProps, ThemedButtonState, any>.

¿Qué me estoy perdiendo

Respuestas a la pregunta(1)

Su respuesta a la pregunta