Введите 'import ("c: / Users / hp / Desktop / Angular / gametask1 / src / app / models / Event"). Event []' нельзя назначить типу 'Event []' - PullRequest
0 голосов
/ 16 апреля 2020

В моем файле компонента появляется следующая ошибка, когда я пытаюсь сохранить события, извлеченные из firebase, в параметре. Параметры выбираются правильно, но я не могу их сохранить. Какие символы я должен сделать для запуска кода?: -

Type 'import("c:/Users/hp/Desktop/Angular/gametask1/src/app/models/Event").Event[]' is not assignable to type 'Event[]'.
Type 'Event' is missing the following properties from type 'Event': bubbles, cancelBubble, cancelable, composed, and 18 more.

Event.ts: -

export interface Event {
    id: string;
    code: string;
    name: string;
    password: string;
    pollCat: string;
}

events.service.ts: -

import { Injectable } from '@angular/core';
import { AngularFirestore , AngularFirestoreCollection, AngularFirestoreDocument} from 'angularfire2/firestore';
import { Event } from '../models/Event';
import { Observable } from 'rxjs';


@Injectable({
  providedIn: 'root'
})
export class EventsService {

  eventsCollection : AngularFirestoreCollection<Event>;
  events: Observable<Event[]>;

  constructor(public afs: AngularFirestore) { 
    this.events = this.afs.collection<Event>('Events').valueChanges();
  }

  getEvents()
  {
    return this.events;
  }
}

events.component.ts: -

import { Component, OnInit } from '@angular/core';
import { EventsService } from 'src/app/services/events.service';

@Component({
  selector: 'app-events',
  templateUrl: './events.component.html',
  styleUrls: ['./events.component.css']
})
export class EventsComponent implements OnInit {

  events: Event[];

  constructor(public eventsService: EventsService) { }

  ngOnInit() {
    this.eventsService.getEvents().subscribe(events => {
      this.events = events;
    });
  }
}

1 Ответ

1 голос
/ 16 апреля 2020

Вы не импортировали правильный интерфейс Event в свой компонент.

Добавьте эту строку в ваш events.component.ts

import { Event } from '../models/Event';

Он компилируется, потому что Event также является глобальным интерфейсом, но это не то, что вы хотели использовать.

Используйте разные имена для ваших интерфейсов, если вы не хотите, чтобы эти «конфликты».

...