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

TypeScript项目中react-big-calendar用withDragAndDrop初始化报错如何解决

报错原因

这个类型报错的核心是withDragAndDrop高阶组件默认使用的CalendarProps<object, object>泛型,和Calendar组件自带的泛型约束不匹配,导致titleAccessor等属性的类型校验失败。

解决方案

方案1:传入自定义泛型(推荐,类型安全)

首先根据你的业务场景定义日历对应的事件类型、资源类型,再将类型传入高阶组件即可:

// 定义你的日历事件实际字段类型
interface CalendarEvent {
  id: number;
  title: string;
  start: Date;
  end: Date;
  // 可扩展其他自定义字段
}

// 如果使用资源分组,可定义资源类型,不使用可直接写object
interface CalendarResource {
  id: number;
  name: string;
}

// 给withDragAndDrop传入对应的泛型参数
const DragAndDropCalendar = withDragAndDrop<CalendarProps<CalendarEvent, CalendarResource>>(Calendar)

用这个方案之后,你后续给日历组件传titleAccessor、startAccessor等属性时,TS会自动提示你定义的CalendarEvent里的字段,类型安全度更高。

方案2:临时兼容写法

如果你暂时不想定义完整类型,也可以通过显式指定any泛型快速解决报错:

const DragAndDropCalendar = withDragAndDrop<CalendarProps<any, any>>(Calendar)

这个写法比直接用// @ts-ignore更规范,不会忽略其他潜在的类型错误。

内容的提问来源于stack exchange,提问作者Maifee Ul Asad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:39:05