Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Tipo diferentes entre classes em lista-livros.component.ts

No método livrosResultadoParaLivros o tipo de retorno é LivroVolumeInfo[].

livrosResultadoParaLivros(items: Item[]): LivroVolumeInfo[] {

Dentro do método buscarLivro na etapa next é usado o método this.livrosResultadoParaLivros(items) e atribuido a propriedade this.listaLivros que é do tipo Livro[]

 buscarLivros() {
    this.subscription = this.service.buscar(this.campoBusca).subscribe({
      next: (items) => {
        this.listaLivros = this.livrosResultadoParaLivros(items);
      },
      error: (erro) => console.error('erro', erro),
      complete: () => console.log('Onservable Completado'),
    });
  }

São tipo incompativeis já que propriedade listaLivros é do tipo Livro[]

export class ListaLivrosComponent implements OnDestroy {
  listaLivros: Livro[];
  campoBusca: string = '';
  subscription: Subscription;
  livro: Livro;

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeExplica esse ponto

1 resposta
solução!

Oi, tudo bem?

Muito bem, observado! E que bom ver sua dedicação em identificar a incompatibilidade de tipos no código! Isso mostra um ótimo entendimento das boas práticas de programação e uma atenção aos detalhes que é muito importante para o desenvolvimento de software.

É interessante notar que o site/aplicação continua funcionando normalmente porque o TypeScript faz a verificação de tipos em tempo de compilação, mas o JavaScript, que é gerado e executado no navegador, tem uma tipagem dinâmica e não faz essa verificação, ele permite atribuições entre tipos diferentes sem levantar erros, desde que a estrutura básica dos dados seja compatível para o uso pretendido.

O mundo da programação tem dessas coisas, e alguns erros passam, em um canário real, estaríamos nos deparando em um futuro bug, mas seu olhar criterioso, encontrou, um ponto de erro/bug. O ideal para essa saída, é ou ajustar Tipo de listaLivros ou Converter LivroVolumeInfo para Livro., mas fique tranquilo, não precisa ser uma preocupação atual.

Gostaria de agradecer pelo apontamento, e parabenizar pelo mesmo, foi uma excelente observação!

Continue nesse caminho de buscar sempre a excelência no seu código!

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!