首页 > 解决方案 > 更新 react 和 react-dom 后的打字稿错误

问题描述

我已将 react 和 react-dom(以及 @type/react 和 @types/react-dom)升级到最新版本以使用 react 钩子。但是现在我收到了这种类型的错误:

typeof 类型的参数不可分配给 'ComponentType< Props & RouteComponentProps<{}, StaticContext, any>> 类型的参数

interface LoginProps {}

class Login extends React.PureComponent<LoginProps & RouteComponentProps, {}> {

}

export default withRouter(Login);

我怀疑类型定义是问题,但我不知道是什么。

标签: javascriptreactjstypescript

解决方案


我认为问题在于您尝试扩展界面的方式。

在 typescript 中,可以使用extends关键字(即interfaceA extends interfaceB)扩展接口,而可以使用您使用的方法(即typeA & typeB)扩展类型。

而且由于您的 LoginProps 是一个接口,因此您的代码正在破坏。

尝试将您的代码重写为

interface LoginProps extends RouteComponentProps {}

class Login extends React.PureComponent<LoginProps, {}> {

}

推荐阅读