TS 作为表达式调用时,无法解析类修饰器的签名

今天在搭建react项目的时候,遇到ts提示错误,如:

 

代码:

import concatRedux from '@utils/concatRedux'

interface IProps extends IConnectProps {}
interface IState { }

@concatRedux('/home', 'HomeStore', ['fetchHome'])
export default class Home extends React.Component<IProps, IState> {
    render() {
        return (
            <div className="page_test">
                test
            </div>
        );
    }
}

报错如下:

作为表达式调用时,无法解析类修饰器的签名。
不能将类型“ConnectedComponent<any, Pick<unknown, never> & IConnectProps>”分配给类型“typeof Home”。
类型“NamedExoticComponent<Pick<unknown, never> & IConnectProps> & NonReactStatics<any, {}> & { WrappedComponent: any; }”提供的内容与签名“new (props: IProps | Readonly<IProps>): Home”不匹配。

 

解决方案:将 concatRedux 重命名可以绕过这个错误,如:

import concatRedux from '@utils/concatRedux'

interface IProps extends IConnectProps {}
interface IState { }

const concatReduxs: Function = concatRedux;

@concatReduxs('/home', 'HomeStore', ['fetchHome'])
export default class Home extends React.Component<IProps, IState> {
    render() {
        return (
            <div className="page_test">
                test
            </div>
        );
    }
}

 

上一篇:继承


下一篇:面向对象特征之二:继承