You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React TypeScript配合react-redux使用children时TS2739错误如何解决

错误原因

你在定义VerifiedComp的redux连接器时,没有显式声明外部传入的自有Props类型,TypeScript无法区分哪些属性是Redux自动注入的,哪些需要父组件手动传入,会把mapStateToProps返回的所有字段都判定为需要外部传入的属性,因此只传入children时就会抛出缺少email、emailVerified字段的TS2739错误。

修复步骤

  1. 先删掉mapStateToProps里多余的children返回逻辑,children属于组件自有属性,不需要从Redux层传递:
const mapStateToProps = (state: StateTypes) => ({
  email: state.auth.providerData.email,
  emailVerified: state.auth.user.emailVerified
});
  1. 给connect方法显式传入泛型参数,指定自有Props类型:
// connect泛型参数顺序:<RootState类型, mapState返回值类型, mapDispatch返回值类型, 自有Props类型>
const connector = connect<
  ReturnType<typeof mapStateToProps>,
  {},
  PropTypes,
  StateTypes
>(mapStateToProps);

修改后TypeScript就能正确识别:PropTypes里定义的children需要父组件传入,email和emailVerified由Redux自动注入,不需要外部传递,报错就会消失。


内容的提问来源于stack exchange,提问作者Tanzeel Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:45:03