Q:

how can i accept react component constructor as a function param in typescript

import { Component} from "react";

export class Test extends Component<{}, {}> {
      render() {
        return "Hello";
      }
    }

    function myFunction<P, S, C extends Component<P, S>>(c: C): void {
      console.log("ctor", c);
    }

    const s = myFunction(Test);

Error :

Argument of type 'typeof Test' is not assignable to parameter of type
  'Component<{}, {}>'.   Property 'setState' is missing in type 'typeof
  Test'. 07:35:53 - Compilation complete. Watching for file changes.

do i need to implement all members of original react Component class using super.(..) ? 

A:

You'll want to declare the type of C as something that extends a newable function returning a component:
import { Component} from "react";

export class Test extends Component<{}, {}> {
    render() {
        return "Hello";
    }
}

function myFunction<P, S, C extends new () => Component<P, S>>(c: C): void {
    console.log("ctor", c);
}

const s = myFunction(Test);

