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

152
Vistas
Método mecanografiado en clase indefinido

En Typescript tengo una clase Contact que implementa una interfaz IContact . Quiero agregar una propiedad o función a la clase Contact que devuelve la combinación de otros dos campos (nombre y apellido). La definición de la interfaz IContact se ve así:

 export interface IContact { firstname: string; lastname: string; }

La clase de Contact se ve así:

 export class Contact implements IContact { constructor( public firstname: string, public lastname: string ) { } public fullname(): string { return this.firstname + " " + this.lastname; } }

En mi opinión, quiero generar el resultado de Contact.fullname() pero recibo un error de que fullname no es una función. Tengo acceso a todas las demás propiedades de esa clase.

==== ACTUALIZAR ===

Agregaré un código adicional para aclarar algunas cosas. Cuando fullname la propiedad de nombre completo en mi opinión, probé contact.fullname() pero también contact.fullname , lo que no da como resultado nada. En mi componente, tratando de averiguar qué estaba sucediendo, intenté enviar el fullname a la consola de esta manera: console.log("FULLNAME " +contact.fullname()); , pero me da el siguiente mensaje en la consola: EXCEPTION _this.contact.fullname is not a function

===== ACTUALIZADO CON RESPUESTA ========

Como Sakuto dijo correctamente, la lista de contactos es creada por algún json recibido del servidor. Al crear una nueva instancia completamente llamando a su constructor, pude generar la propiedad de fullname . Gracias Sakuto!

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Probablemente esté intentando llamar a este método en un objeto emitido dinámicamente desde un JSON . casted object dinámicamente no tiene el método definido en la clase, solo respeta el contract y tiene la propiedad.

La única forma de hacer que su código actual funcione es crear una nueva instancia de Contact en lugar de simplemente convertirlo con <Contact> yourObject ;

La solución sería hacer algo como esto:

 let contactsList: Contact[] = []; yourServiceReturn.ForEach(c => contactsList[] = new Contact(c.name, c.surname)); // You can now call getFullName on the object stored on contactsList
about 4 years ago · Santiago Trujillo Denunciar

0

¿Cómo convierto un objeto JSON en una clase mecanografiada?

 onReceiveCompany( jsonCompany : any ) { let newCompany = new Company( jsonCompany ); // call the methods on your newCompany object ... }
about 4 years ago · Santiago Trujillo 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