Javascript 键入脚本键入React

Javascript 键入脚本键入React,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我有以下内容,我正在学习打字 interface Props { contentHeight: number, dayRender( date: Date, el: HTMLElement, view: object ): void, ... dayRender是我使用的插件的自定义函数: 和一个类似的组件: export class CalendarComponent extends Component<Props> { ...

我有以下内容,我正在学习打字

interface Props {
  contentHeight: number,
  dayRender(
    date: Date, 
    el: HTMLElement, 
    view: object
  ): void,
...
dayRender是我使用的插件的自定义函数:

和一个类似的组件:

export class CalendarComponent extends Component<Props> {
  ...

  disableSaturday = ( slots: Array<{date: Date}> )  => {
    for(let i = 0; i < slots.length; i += 1) {
      if (getDay(slots[i].date) === Day.Sunday) {
        console.log(`it's saturday`)
      }
    }
  }

  render() {
    const { 
      contentHeight,
      dateClick,
      defaultView,
      displayEventTime,
      header,
      selectedAvailablity: { endDate, slots, startDate }, 
      selectedDate 
    } = this.props

    this.goToDate(selectedDate)
    return (
      <Fragment>
        <FullCalendar
          contentHeight={contentHeight}
          // dayRender={'sth on day render'}
          dateClick={dateClick}
          defaultView={defaultView}
          displayEventTime={displayEventTime}
          events={slots}
          dayRender={this.disableSaturday}
          firstDay={Day.Monday}
          header={header}
          now={selectedDate}
          plugins={[dayGridPlugin, interactionPlugin]}
          ref={this.calendarRef}
          validRange={{
            start: startDate,
            end: endDate,
          }}
        />
      </Fragment>
    ...
导出类CalendarComponent扩展组件{
...
disableSaturday=(插槽:阵列)=>{
对于(设i=0;i
我已经更新了道具接口并更新了dayRender的类型,但是我得到了一个类型错误:


您的
this.disableSaturday
功能与
dayRender
期望的功能不兼容:

daydrender
希望收到一个带有以下道具的函数
{view:view;date:date;allDay?:boolean | undefined;el:HTMLElement;}
。但是您给了它
这个。disableSaturday
想要
{date date}[]
作为道具。
daydrender
无法使用它,因为
daydrender
只能提供1个
{date:date}
对象,而不是它们的数组

要解决此问题,您只需执行以下操作:

dayRender(({ date }) => this.disableSaturday([date]))
第一个日期从dayRender(destructuring)获取日期变量

第二部分提供了一个数组,用于
disableSaturday
,其中包含1
date
变量