无法让 FullCalendar v4 与 Angular 和 Angular Cli 一起工作

Cannot get FullCalendar v4 to work with Angular and the Angular Cli

我正在尝试使用 angular cli 在 Angular 7 应用程序中使用 FullCalendar v4,但我在构建过程中遇到 Typescript 错误以及浏览器中的控制台错误,指出'Calendar' 未定义。不确定我做错了什么,因为我似乎在遵循所有指示。我已经将它添加到一个最小的 angular 应用程序中,并添加了在 css 栏下方生效的文件,但这不应该影响它。

注意 - 我已经在此处的 stackblitz 示例中克隆了它,一切似乎都运行良好,但是在 angular cli 中多次在本地重新创建它时,我仍然得到相同的结果。

https://stackblitz.com/edit/angular-lec711

package.json

{
  "name": "fullcalendar",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~7.0.0",
    "@angular/common": "~7.0.0",
    "@angular/compiler": "~7.0.0",
    "@angular/core": "~7.0.0",
    "@angular/forms": "~7.0.0",
    "@angular/http": "~7.0.0",
    "@angular/platform-browser": "~7.0.0",
    "@angular/platform-browser-dynamic": "~7.0.0",
    "@angular/router": "~7.0.0",
    "@fullcalendar/core": "4.0.0-beta.4",
    "@fullcalendar/resource-timegrid": "4.0.0-beta.4",
    "core-js": "^2.5.4",
    "n": "^2.1.12",
    "rxjs": "~6.3.3",
    "zone.js": "~0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.10.0",
    "@angular/cli": "~7.0.4",
    "@angular/compiler-cli": "~7.0.0",
    "@angular/language-service": "~7.0.0",
    "@types/node": "~8.9.4",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.1.1"
  }
}

import { Component, ViewChild, AfterViewInit } from '@angular/core';
import { Calendar } from '@fullcalendar/core';
import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements AfterViewInit {
  @ViewChild('fullCalendarInstance') private fullCalendarInstance: any;
  ngAfterViewInit() {
    this.initFullCalendar();
  }

  initFullCalendar() {
    const calendar = new Calendar(this.fullCalendarInstance.nativeElement, {
      plugins: [resourceTimeGridPlugin],
      timeZone: 'UTC',
      defaultView: 'resourceTimeGridDay',
      groupByResource: true,
      resources: [
        { id: 'a', title: 'Room A' },
        { id: 'b', title: 'Room B' }
      ],
      events: 'https://fullcalendar.io/demo-events.json?with-resources=2'
    });

    calendar.render();
  }
}

<div #fullCalendarInstance></div>

我刚刚将 package.json 中的 TypeScript 更新为 "typescript": "~3.2.2",现在我可以构建并且没有收到错误。