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

React TypeScript开发中如何为组件Prop正确指定类型?

错误原因

React 组件的入参永远是包含所有传入属性的对象,你在父组件中给子组件传递了名为movies的属性,因此实际传入子组件的props整体类型是{ movies: IMovie[] },而非直接的IMovie[]。之前子组件直接将props声明为IMovie[]类型,和实际传入的对象类型不匹配,因此触发报错。

解决方案

下面是两种常用的正确写法:

直接声明props对象类型

可以单独声明props的接口类型,也可以在参数位置直接定义:

// MovieOverview.tsx
// 写法1:提前声明props接口
interface MovieOverviewProps {
  movies: IMovie[]
}

const MovieOverview = (props: MovieOverviewProps) => {
  const movies = props.movies;
  // 原有逻辑保持不变
}

// 写法2:参数直接解构,写法更简洁
const MovieOverview = ({ movies }: { movies: IMovie[] }) => {
  // 直接使用movies变量即可
  // 原有逻辑保持不变
}

配合React.FC泛型定义(更规范的函数组件写法)

如果使用React官方推荐的函数组件类型标注,可以用泛型传入props类型:

import type { FC } from 'react'

interface MovieOverviewProps {
  movies: IMovie[]
}

const MovieOverview: FC<MovieOverviewProps> = ({ movies }) => {
  // 原有逻辑保持不变
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:09:02