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);
错误:
类型'typeof Test'的参数不能分配给类型的参数 'Component&lt; {},{}&gt;'。 'typeof'类型中缺少属性'setState' 测试'。 07:35:53 - 编译完成注意文件更改。
我是否需要使用super。(..)实现原始反应Component
类的所有成员?
答案 0 :(得分:2)
您需要将C
的类型声明为扩展返回组件的新函数的内容:
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);