ошибка TS2740: для типа «Наблюдаемый <DocumentData>» отсутствуют следующие свойства из типа «ProjectPage []»: длина, поп, pu sh, конкат и еще 25 - PullRequest
0 голосов
/ 08 апреля 2020

Я не уверен, как исправить эту ошибку. Я видел несколько постов, но до сих пор не нашел ответа на эту проблему, полагаю, это довольно просто, но я довольно плохо знаком с Angular и действительно не знаю, как это исправить.

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AngularFirestore } from '@angular/fire/firestore';
import { switchMap } from 'rxjs/operators';

import { ProjectPage } from './project-page';

@Component({
  selector: 'app-project-page',
  templateUrl: './project-page.component.html',
  styleUrls: ['./project-page.component.scss']
})
export class ProjectPageComponent implements OnInit {

  project$: ProjectPage[];
  constructor(private afs: AngularFirestore, private route: ActivatedRoute) {}

  ngOnInit() {
    this.project$ = this.route.paramMap.pipe(
      switchMap((params) => {
        const name = params.get('name');
        return this.afs.doc('projects/' + name).ref.get()
        .then((doc) => {
          return doc.data();
        })
      })
    )
  }
}

1 Ответ

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

Ну, проблема здесь в том, что ты печатаешь. Вы указываете project$, чтобы иметь тип ProjectPage[], но используя маршрут paramMap, вы назначаете его для Observable. Набор текста, вероятно, будет работать, если вы измените

project$: ProjectPage[];

на

project$: Observable<ProjectPage[]>;

...