> Faqs > Declaración de propiedades e inicialización

Declaración de propiedades e inicialización

Hola, no se si es por mi versión de Angular pero cuando delcaro una propiedad en la clase me pide que la inicialice en el constructor y me da error si lo hago en el ngOnInit(). Pero en el caso de la eliminación de una suscripción, si la hago textualmente como en el ejemplo del componente listado-clientes.components.ts me da error y no se dónde inicializarla.

Subraya clientesSubscription:Subscription y me dice: La propiedad "clientesSubscription" no tiene inicializador y no está asignada de forma definitiva en el constructor.ts(2564)

A continuación transcribo mi clase completa:

export class ListadoClientesComponent implements OnInit {
  
  clientes$: Observable <Cliente[]>;
  clientes: Cliente [] = [];
  clientesSubscription:Subscription;

  constructor(private clienteService: ClientesService) {
    
    this.clientes$=this.clienteService.getClientes$();
    this.clientes$.subscribe(clientes=> this.clientes=clientes)
   }

  ngOnInit(): void {
        
  }

  ngOnDestroy(){
    this.clientesSubscription.unsubscribe();
  }

}

Respuestas

export class ListadoClientesComponent implements OnInit {
  clientes$: Observable <Cliente[]>;
  clientes: Cliente [] = [];
  clientesSubscription:Subscription;

Te falta darle un valor a clientesSubscription, en el caso Cliente le diste el valor de [], pero en Subscription no le diste un valor para arrancar el script. por ejemplo new Subscription() seria en POO.

ivan
5 1
Gracias por enviar la respuesta. He formateado el texto como código para que se lea mejor.