【发布时间】:2019-12-31 12:45:20
【问题描述】:
当我编译 Angular 代码时,编译器会显示“'any[]' 类型上不存在属性 'push'”这个错误。分别在 .service.ts 和 .component.ts 代码下面。
Service.ts 文件
import { Injectable } from '@angular/core';
import { AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument } from '@angular/fire/firestore';
import { AngularFireDatabase} from 'angularfire2/database';
@Injectable({
providedIn: 'root'
})
export class UserService {
readonly userspath = "Development/users/users";
collectionRef= "Development"
ref = "Development"
usersRef="users"
public usersArray = [];
constructor(public af: AngularFireDatabase) { }
getUser(){
return this.af.database.ref(this.ref).child(this.usersRef)
}
}
component.ts 文件
import { Component, OnInit } from '@angular/core';
import { UserService } from '../services/user.service';
import { Router } from '@angular/router';
import { User } from '../models/user';
import { Observable } from 'rxjs';
@Component({
selector: 'app-employee',
templateUrl: './employee.component.html',
styleUrls: ['./employee.component.css']
})
export class EmployeeComponent implements OnInit {
public user = [];
usersArray = [];
constructor(
private userservice:UserService,
private router: Router
) { }
title = "Employees";
ngOnInit( ) {
this.userservice.getUser().on('value',snapshot => {
snapshot.forEach(data => {
this.usersArray.push(data.val());
})
})
}
VScode 显示属性 'push' 在类型 'any[]' 上不存在此错误
【问题讨论】:
-
像这样声明变量:usersArray: any = [];
-
为您声明的所有变量添加类型。这是一个很好的做法
标签: javascript angular typescript firebase-realtime-database