【问题标题】:Property 'push' does not exist on type 'any[]'类型“any[]”上不存在属性“push”
【发布时间】: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


【解决方案1】:

试试这个,

ngOnInit( ) {
    this.userservice.getUser().on('value',snapshot => {
     this.usersArray = [];
     snapshot.forEach((data:any) => {
      this.usersArray.push(data.val());
     })

  })

【讨论】:

  • 像这样定义数组 usersArray: any[] = [];
猜你喜欢
  • 2017-08-24
  • 2021-02-08
  • 2019-09-20
  • 2018-09-09
  • 2022-12-17
  • 2021-11-29
  • 1970-01-01
  • 2017-10-20
  • 2017-01-14
相关资源
最近更新 更多