今天在搭建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> ); } }