Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

320
Visualizações
Typescript method on class undefined

In Typescript I have a class Contact which implements an interface IContact. I want to add a property or function to the Contact class which returns the combination of two other fields (firstname and lastname). The definition of the IContact interface looks like this:

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

The Contact class look like this:

export class Contact implements IContact {
    constructor(
        public firstname: string,
        public lastname: string
    ) { }

    public fullname(): string {
        return this.firstname + " " + this.lastname;
    }
}

In my view I want to output the result of Contact.fullname() but I receive an error that fullname is not a function. I do have access to all other properties on that class.

==== UPDATE ===

I'll add some extra code to clarify some stuff. When I output the fullname property in my view I have tried contact.fullname() but also contact.fullname which results in nothing. In my component, trying to figure out what was happening I tried to output fullname to the console like this: console.log("FULLNAME " +contact.fullname());, but that give me the following message in the console: EXCEPTION _this.contact.fullname is not a function

===== UPDATED WITH ANSWER ========

As Sakuto stated correctly the list of contacts is created by some json received from the server. By creating a new instance entirely by calling it's constructor i was able to output the fullname property. Thanks Sakuto!

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

You are probably trying to call this method on an object dynamically casted from a JSON. Dynamically casted object does not have the method defined in the class, they just respect the contract and have the property.

The only way to make your current code work is to create a new instance of Contact instead of just casting it with <Contact> yourObject;

The solution would be to do something like this:

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 Relatório

0

How do I cast a JSON object to a typescript class

onReceiveCompany( jsonCompany : any ) 
{
   let newCompany = new Company( jsonCompany );

   // call the methods on your newCompany object ...
}
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda