Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

207
Vistas
Mejores prácticas para inicializar una variable cuando se usa el decorador @Input en Angular

Supongamos que tenemos un Customer de interfaz:

 export interface Customer { name: string; age: number; phone: string; }

Ahora tenemos un componente principal y queremos pasar una instancia de Customer al componente secundario:

 <child-component [customer]="instanceOfCustomer"></child-component>

Después de eso, necesitamos usar el decorador @Input para obtener los datos en el componente secundario. (Suponemos que pasar la instancia es obligatorio para usar este componente y este componente no funcionará sin pasar la instancia)

 @Input() customer:Customer;

El problema es que necesitamos inicializar el cliente en alguna parte y creo que hay 3 enfoques para evitar el error en Typescript:

  1. Inicializando un customer vacío en el constructor :

     this.customer = { name: ""; age: 0; phone: ""; }
  2. Cambie strictPropertyInitialization a falso

  3. Solo agregando el ! prefijo (que creo que debería usar porque nadie debería usar este componente secundario sin pasar el cliente relativo)

     @Input() customer!:Customer;

Quiero saber qué enfoque debo usar para evitar el error de inicialización de propiedad en caso de usar el decorador @Input .

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

debe usar setter https://angular.io/guide/component-interaction#intercept-input-property-changes-with-a-setter

o también puede usar su 3rd enfoque.

ya hay algunas respuestas para esto también.

consulte las respuestas a continuación para obtener más detalles:

Hacer directiva @Input requerida

about 4 years ago · Juan Pablo Isaza Denunciar

0

Para evitar que TS se queje, sugeriré inicializarlo así:

 @Input() customer: Customer | null = null;

El uso de null evitará que el compilador se queje cuando pase la entrada a través de la tubería asíncrona (la tubería asíncrona devuelve algo como T | nulo).

Además, al hacer eso, tendrá que asegurarse de tener en cuenta los valores nulos donde sea que use esa propiedad, por lo que menos errores con los que lidiar en producción si algo sale mal, digamos.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda