1
resposta

Interface - Types ou Models

Olá! Bom dia Professor!
Poderia tirar algumas dúvidas por favor?


No vídeo 03 - Entendendo o providedIn - você criou um arquivo Type para uma Interface.

Seria errado criar um model em vez de Types? Qual seria a diferença?

Interfaces não são criadas em models?

Obrigado!

1 resposta

Oi, Estudante! Tudo bem?

No Angular, tanto interfaces quanto classes (models) podem ser usadas para definir a forma dos dados. A escolha entre um e outro depende do seu caso de uso.

// Interface
export interface Promocao {
  id: number;
  destino: string;
  imagem: string;
  preco: number;
}

// Classe (Model)
export class PromocaoModel {
  id: number;
  destino: string;
  imagem: string;
  preco: number;

  constructor(id: number, destino: string, imagem: string, preco: number) {
    this.id = id;
    this.destino = destino;
    this.imagem = imagem;
    this.preco = preco;
  }
}

Interfaces:

  • Definem um contrato que os objetos devem seguir.
  • Não são transpiladas para JavaScript, então não têm impacto no tamanho do bundle final.
  • São ideais para definir a forma de dados que vêm de uma API, por exemplo.

Classes (Models):

  • Podem conter propriedades e métodos.
  • São transpiladas para JavaScript.
  • Permitem criar instâncias de objetos e adicionar lógica a eles.

No contexto da aula, usar uma interface é mais adequado porque você está definindo a forma dos dados que vêm da API. Se você precisasse adicionar lógica a esses dados, como formatar um preço ou validar um campo, uma classe seria mais apropriada.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado