en mi aplicación Angular tengo un componente:
import { MakeService } from './../../services/make.service'; import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-vehicle-form', templateUrl: './vehicle-form.component.html', styleUrls: ['./vehicle-form.component.css'] }) export class VehicleFormComponent implements OnInit { makes: any[]; vehicle = {}; constructor(private makeService: MakeService) { } ngOnInit() { this.makeService.getMakes().subscribe(makes => { this.makes = makes console.log("MAKES", this.makes); }); } onMakeChange(){ console.log("VEHICLE", this.vehicle); } }pero en la propiedad "makes" tengo un error. no se que hacer con eso...
Simplemente vaya a tsconfig.json y configure
"strictPropertyInitialization": falsepara deshacerse del error de compilación.
De lo contrario, debe inicializar todas sus variables, lo cual es un poco molesto
Creo que estás usando la última versión de TypeScript. Consulte la sección "Inicialización de clase estricta" en el link .
Hay dos formas de arreglar esto:
R. Si está utilizando VSCode, debe cambiar la versión de TS que utiliza el editor.
B. Simplemente inicialice la matriz cuando la declare
makes: any[] = [];o dentro del constructor:
constructor(private makeService: MakeService) { // Initialization inside the constructor this.makes = []; }Es porque TypeScript 2.7 incluye una verificación de clase estricta donde todas las propiedades deben inicializarse en el constructor. Una solución es agregar el ! como un sufijo al nombre de la variable:
makes!: any[];