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

TypeScript React组件传参报错:'job'属性不匹配类型定义

解决TypeScript传递job props报错的步骤

1. 确认JobsProps接口定义

先保证你的JobsProps接口与职位对象结构完全匹配:

interface JobsProps {
  id: number;
  title: string;
  location: string;
  fullTime: boolean;
  deadline: Date;
}

2. 给JobVacancy组件指定Props类型

你当前的组件未声明props类型,导致TypeScript无法识别传入的job属性。需要定义组件接收的props类型,并关联到JobsProps:

// 定义JobVacancy组件接收的props结构,包含job字段
interface JobVacancyProps {
  job: JobsProps;
}

// 为FC泛型指定JobVacancyProps类型
const JobVacancy: React.FC<JobVacancyProps> = ({ job }) => {
  // 组件内部可直接使用job的属性,如job.title、job.location等
  return (
    <div className="job-card">
      <h3>{job.title}</h3>
      <p>地点:{job.location}</p>
      <p>全职状态:{job.fullTime ? '全职' : '兼职'}</p>
      <p>截止日期:{job.deadline.toLocaleDateString()}</p>
    </div>
  );
};

3. 在Vacancies组件中正常传递props

完成组件类型声明后,遍历数组传递job属性就不会触发报错了:

import { JobsProps } from './your-types-path';
import JobVacancy from './JobVacancy';

// 你的职位数据数组
const vacancies: JobsProps[] = [
  { id: 1, title: '前端开发工程师', location: '北京', fullTime: true, deadline: new Date('2024-12-31') },
  // 更多职位数据...
];

const Vacancies: React.FC = () => {
  return (
    <div className="vacancies-list">
      {vacancies.map(job => (
        <JobVacancy key={job.id} job={job} />
      ))}
    </div>
  );
};

报错核心原因

TypeScript无法识别未声明类型的组件props,显式定义JobVacancy的props类型后,TS会自动校验传入的job参数是否符合类型要求,同时还能在组件内部提供代码提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:27:22