这可能是一个新手的错误,但我正在尝试使用typescript为React组件创建一个简单的类装饰器,如下所示:
import * as React from 'react'
interface Greeter {
sayHello: boolean
}
const greet = (arg: Greeter) => (Comp: React.Component) => {
// do some stuff
}
@greet({ sayHello: true })
class MyComp extends React.Component<any, any> {
render() {
return <div>Hi</div>
}
}
但我收到编译错误
类型'typeof MyComp'的参数不能赋值给 输入'Component&lt; {},{}&gt;'。
我到底错在了什么?我错过了装饰器语法的东西吗?
答案 0 :(得分:2)
当您将课程传递给greet
时,而不是该课程的对象,请添加typeof
:
const greet = (arg: Greeter) => (Comp: typeof React.Component) => {
// do some stuff
}
答案 1 :(得分:0)
我不确定何时添加它,但是在@types/react
的较新版本中,您也可以执行React.ComponentType
,例如
const greet = (arg: Greeter) => (Comp: React.ComponentType) => {
// do some stuff
}