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>
        );
    }
}

報錯如下:

Unable to resolve signature of class decorator when called as an expression.

Type 'ConnectedComponent<any, any>' is not assignable to type 'typeof Home'.

  Type 'NamedExoticComponent<any> & NonReactStatics<any, {}> & { WrappedComponent: any; }' provides no match for the signature 'new (props: IProps | Readonly<IProps>): Home'. TS1238

 

解決方案:將 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>
        );
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM