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

260
Vistas
Error al devolver una matriz de objetos de una función Angular

Buenas tardes, tengo un problema cuando quiero devolver un array de objetos desde una función externa.

He declarado una clase Object con 2 propiedades, su constructora y una que funciona donde devuelvo un arreglo con mas de 50 objetos para este ejemplo solo puse 4 objetos

 export class Object { formcontrolName: String; formcontrolTraducido: String; constructor(formcontrolName: String, formcontrolTraducido: String) { this.formcontrolName = formcontrolName; this.formcontrolTraducido = formcontrolTraducido; } getData() { return [ { formcontrolName: 'callId', formcontrolTraducido: 'CId' }, { formcontrolName: 'collegeCareerId', formcontrolTraducido: 'Carrera' }, { formcontrolName: 'collegeDepartmentId', formcontrolTraducido: 'Nombre del Departamento/Centro', }, { formcontrolName: 'detailedAreaKnowledgeId', formcontrolTraducido: 'Campo Detallado', }, ]; } }

El problema es que quiero llamar desde otro componente a la función getData de la clase Object, pero al regresar me sale el siguiente error:

Escriba '() => { formcontrolName: cadena; formcontrolTraducido: string; }[]' faltan las siguientes propiedades del tipo 'Object[]': pop, push, concat, join

 import { Component, OnInit } from '@angular/core'; import { Object } from './object'; @Component({ selector: 'my-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], }) export class AppComponent implements OnInit { data: Object; arrayData: Object[]; constructor() {} ngOnInit() { this.arrayData = this.data.getData; console.log('arrayData: ' + this.arrayData); }

}

código de ejemplo de stackblitz

Soy nuevo en angular y en trabajar con matrices, me gustaría saber qué puedo hacer para resolver mi problema. Muchísimas gracias

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

0

En primer lugar, el tipo de la propiedad arrayData no es de tipo Object , que es la clase que está utilizando, por lo que un tipo más adecuado sería el mismo que devuelve el método getData .

Puede obtener su tipo de devolución utilizando el tipo de ayuda de mecanografiado ReturnType , por lo que una buena manera de escribir esto sería:

 arrayData: ReturnType<Object['getData']>;

Una recomendación que tengo es no usar el nombre Object para una clase, ya que tiene el mismo nombre que Object y javascript incorporado.

Después de eso, el problema que tienes aquí:

 ngOnInit() { this.arrayData = this.data.getData(); console.log('arrayData: ' + this.arrayData); }

Es que le estás asignando un método a una variable que espera un arreglo de algo, por eso te da el error:

 Type '() => { formcontrolName: string; formcontrolTraducido: string; }[]' is missing the following properties from type 'Object[]': pop, push, concat, join

Solo necesita llamar al método como:

 this.arrayData = this.data.getData();

Con todo eso en mente, el código final se vería así:

 import { Component, OnInit } from '@angular/core'; import { Object } from './object'; @Component({ selector: 'my-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], }) export class AppComponent implements OnInit { name = 'Angular'; data: Object; arrayData: ReturnType<Object['getData']>; constructor() {} ngOnInit() { this.arrayData = this.data.getData(); console.log('arrayData: ' + this.arrayData); } }
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