Ошибка в Ангуляр коде

import { Component, OnInit } from '@angular/core';
import { WaitersService } from '../api/WaitersService';
import { FormControl, FormGroup } from '@angular/forms';
import { Observable, of, pipe, Subject } from 'rxjs';
import { Waiter } from '../api/waiter';
import { switchMap, takeUntil } from 'rxjs/operators';
import {ButtonModule} from 'primeng/button';

@Component({
  selector: 'app-waiters',
  templateUrl: './waiters.component.html',
  styleUrls: ['./waiters.component.scss'],
})
export class WaitersComponent implements OnInit {
  constructor(private waitersService: WaitersService) {}

  private readonly _destroying$ = new Subject<void>();

  showAddForm: boolean = false
  editFormStatus: boolean = false

  waiters?: Waiter[];

  avatar: string = "assets/avatar/avatar1.png"

  registrationForm!: FormGroup;
  editForm!: FormGroup

  ngOnInit(): void {

    this.getAllWaiters();
    this.registrationForm = new FormGroup({
      name: new FormControl(''),
    });
    this.editForm = new FormGroup({
      name: new FormControl(''),
    });
    console.log(this.editForm)
  }

  

  getAllWaiters() {
    this.waitersService.getAll().subscribe((res) => {
      console.log(res);
      this.waiters = res;
    });
  }

  onSubmit() {
    console.log(this.registrationForm);
    if (this.registrationForm.invalid) {
      return;
    }

    let stream$: Observable<Waiter>;

    const NEW_WAITER: Waiter = this.registrationForm.value;

    stream$ = this.waitersService.create(NEW_WAITER);
    stream$.pipe(takeUntil(this._destroying$)).subscribe((data: Waiter) => {
      this.waiters?.push(data);
    });
  }

  deleteWaiter(waiter: Waiter) {
    this.waitersService.delete(waiter).subscribe()
    this.waiters = this.waiters?.filter((item) => item.id !== waiter.id);
  }

  showEditForm(waiter: Waiter) {
    this.editFormStatus = !this.editFormStatus

    this.editForm.get('name')?.patchValue(waiter.name);
    console.log(this.editForm)
  }

  onEdit(waiter: Waiter) {
    let newWaiter: Waiter = {...waiter, name: this.editForm.value.name}
    console.log(newWaiter)
    this.waitersService.update(newWaiter).subscribe()
    this.waiters = this.waiters?.filter((item) => item.id !== waiter.id);
    this.waiters = this.waiters?.push(newWaiter)
  }
}

В последней строке выдает Тип "number | undefined" не может быть назначен для типа "Waiter[] | undefined". Тип "number" не может быть назначен для типа "Waiter[]". Как это исправить?


Ответы (0 шт):