typescript中装饰器使用继承模式来增强react组件时提示需要设置构造函数类型

1.我想开发一个react 组件装饰器,使用的时继承模式,但是会报下面的错


export type IReactComponent<P = any> =
    | React.StatelessComponent<P>
    | React.ComponentClass<P>
    | React.ClassicComponentClass<P>
const SafeSetState= function<T extends  IReactComponent >(WrappedComponent:T){
    return class SafeComponent extends  WrappedComponent{
        private isMount:boolean
        componentDidMount(){
            this.isMount=true
            if(super.componentDidMount){
                super.componentDidMount()
            }
        }
        componentWillUnmount(){
            this.isMount=false
            if(super.componentWillUnmount){
                super.componentWillUnmount()
            }
        }
        setState(state,callback?){
            if(this.isMount){
                super.setState(state,callback)
            }
        }

    }
};

export default SafeSetState

报错提示

clipboard.png

也就是想让我吧WrappedComponent的类型设置为构造函数类型才可以?可是我并不想这是为构造函数类型,而是设置为ReactCompoent类型,这个改怎么解决?

阅读 1.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进