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