angular - "[ts] Cannot find name ' 项目 '."

标签 angular firebase angularfire2 google-cloud-firestore

我正在按照 here 的指示进行操作尝试 Firebase Firestore:

在 app.component.ts 文件中的以下代码块中,出现以下错误:

[ts] Cannot find name 'Item'.

import { Component } from '@angular/core';
import { AngularFirestore, AngularFirestoreDocument } from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';

@Component({
  selector: 'app-root',
  template: `
    <div>
      {{ (item | async)?.name }}
    </div>
  `
})
export class AppComponent {
  private itemDoc: AngularFirestoreDocument<Item>;
  item: Observable<Item>;
  constructor(private afs: AngularFirestore) {
    this.itemDoc = afs.doc<Item>('items/1');
    this.item = this.itemDoc.valueChanges();
  }
  update(item: Item) {
    this.itemDoc.update(item);
  }
}

我的问题是,他们在文档中使用的 Item 类型是什么?我应该在某个地方手动声明这种类型吗?还是我还漏掉了其他东西?

最佳答案

Item 是您期望返回的文档的类型。例如,假设我正在尝试从 firestore 获取任务文档。

afs.doc<Task>('tasks/1');

这里,Task是应该返回的类型。您必须手动定义它。

interface Task {
    title: string;
    description: string;
}

所以在这个例子中,firestore 应该返回一个类似的对象

{
    title: 'Task 1',
    description: 'My first task'
}

由于某种原因,这些文档没有定义 Item。它很可能是从某个地方进口的。为了简洁起见,他们可能没有将其包含在导入中。

关于angular - "[ts] Cannot find name ' 项目 '.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47144166/

相关文章:

javascript - 使同步代码异步处理大型数组并发出完成百分比

javascript - Nativescript:如何将 HTTP 值存储到公共(public)变量

ios - 从 Firebase child 获取数据到 Xcode 8 swift 3 ios 10+ 中的标签

unit-testing - 如何在单元测试中模拟 AngularFire 2 服务?

angular - 如何使用 angulafire2 正确初始化和分配可观察值?

Angular2 将 map 的值绑定(bind)到复选框

javascript - angular2 ngIf 真或假条件

ios - 如何在 tableView 上反射(reflect) childChanges - IOS Swift Firebase

java - FirebaseRecyclerView 无法在 fragment 内工作

angular - 在 Firestore 中使用 Angular 删除集合中的文档