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

JSX转TSX时如何将父级PropTypes正确映射到子元素类型定义

问题解答

  1. 原有PropTypes定义存在错误
    子级属性的类型声明语法不正确,PropTypes.string.createdDate、PropTypes.string.modifiedDate属于非法写法:PropTypes.string上不存在createdDate、modifiedDate属性,这段代码实际运行时会抛出异常。正确的子级类型声明应该和父级保持一致,用PropTypes.string或PropTypes.string.isRequired声明即可。
  2. 从代码设计意图来看,你想要让子级communication对象的属性类型和父级一致,都是string类型的创建时间、修改时间字段,只是原有PropTypes的错误写法导致实际逻辑不符合预期。
  3. 你给出的TypeScript类型定义可以作为解决方案,完全匹配你想要实现的类型约束。如果想要进一步优化可维护性,还可以把重复的字段抽成公共类型:
// 抽离重复的日期字段类型,后续修改只需调整一处
type BaseDateMeta = {
  createdDate: string;
  modifiedDate: string;
}

type Props = BaseDateMeta & {
  communications: BaseDateMeta[];
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:39:01