Аргумент типа DateInput не может быть назначен параметру типа Date - PullRequest
0 голосов
/ 07 мая 2020

Я использую fullcalendar , я хочу использовать свои локальные модели вместо модели fullcalendar, и когда я пытаюсь создать новый экземпляр моей собственной модели, он говорит:

Аргумент типа DateInput не может быть назначен параметру типа Date.

Вот мой event.model.ts:

export class EventModel {
  public eventId: string;
  public eventName: string;      
  public eventStart: Date;

  constructor(
    eventId: string,
    eventName: string,  
    eventStart: Date
  ) 
  {
    this.eventId = eventId;
    this.eventName = eventName;
    this.eventStart = eventStart;
  }
}

Вот полный календарь инициация:

import { EventInput } from '@fullcalendar/core';

Использование:

private events: EventInput[] = [
    { id: "1", title: 'Test', start: new Date() }
];

getEvent(id: string) : EventModel {
    var event = this.events.find(x => x.id === id);        
    if (event) {
        EventModel model = new EventModel(event.id, event.title, event.start); //the event.start Throws error!
    } 
}

1 Ответ

0 голосов
/ 07 мая 2020

Спасибо за понимание комментария @jonrsharpe.

Несмотря на то, что начальный атрибут EventInput был инициирован простым start: new Date():

private events: EventInput[] = [
    { id: "1", title: 'Event Now', start: new Date() }
]; 

Класс EventInput выглядит например:

export interface EventDateInput {       
    start?: DateInput;
    //rest of properties.
}

DateInput is:

export type DateInput = Date | string | number | number[];

Итак, простое приведение решает это:

EventModel model = new EventModel(event.id, event.title, <Date>event.start);
...