Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用react创建typescript装饰器_Javascript_Reactjs_Typescript - Fatal编程技术网

Javascript 如何使用react创建typescript装饰器

Javascript 如何使用react创建typescript装饰器,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我正在尝试创建一个react类装饰器,它向任何react组件添加一些道具,并返回装饰组件及其当前道具和装饰器提供的其他道具 我能够找到常规typescript类装饰器的工作代码,该装饰器可以在typescript上找到。但是,这是针对泛型类的。它不包括任何反应类型 下面是我希望通过React和Typescript实现的类似功能: @AddOtherProps 类BasicComponent扩展了React.Component{ 静态defaultProps={ someProp:' }; 建造

我正在尝试创建一个react类装饰器,它向任何react组件添加一些道具,并返回装饰组件及其当前道具和装饰器提供的其他道具

我能够找到常规typescript类装饰器的工作代码,该装饰器可以在typescript上找到。但是,这是针对泛型类的。它不包括任何反应类型

下面是我希望通过React和Typescript实现的类似功能:

@AddOtherProps
类BasicComponent扩展了React.Component{
静态defaultProps={
someProp:'
};
建造师(道具){
超级(道具);
}
render(){
返回(
{'Component Content'}
);
}

}
基本装饰器的功能类似于HoC包装器

function decorate(DecoratedComponent) {
  return class extends React.Component {
    render() {
      return <DecoratedComponent {...this.props} injectedProp="Hello" />;
    }
  };
}

尝试此操作时,我遇到一个错误:
TS1238:当作为表达式调用时,无法解析类decorator的签名。类型“typeof(匿名类)”不可分配给类型“typeof ExampleComponent”。类型“typeof(匿名类)”中缺少属性“defaultProps”。
示例中的类型抛出ts错误:
作为表达式调用时无法解析类装饰器的签名。类型“ComponentClass”不可分配给类型“typeof App”。构造签名返回类型“组件”和“应用程序”不兼容。“render()”返回的类型在这些类型之间不兼容。类型“ReactNode”不可分配给类型“Element”。类型“未定义”不可分配给类型元素。ts(1238)
@decorate
class App extends React.Component { ... }