Ao tentar tipar o método livrosResultadoPraLivros para receber somente arrays do tipo Item, o método está dizendo que a propriedade previewLink não existe dentro de volumeInfo.
Não seria esta a melhor prática, tipar o método com o tipo de objeto que sempre será passado para ele para evitar erros futuros?
Este também não seria um erro do professor ao tentar realizar o acesso a uma propriedade que não será atribuída?
livrosResultadoPraLivros(items: Item[]): Livro[] {
const livros: Livro[] = []
items.forEach(item => {
livros.push(this.livro = {
title: item.volumeInfo?.title,
authors: item.volumeInfo?.authors,
publisher: item.volumeInfo?.publisher,
publishedDate: item.volumeInfo?.publishedDate,
description: item.volumeInfo?.description,
previewLink: item.volumeInfo?.previewLink,
thumbnail: item.volumeInfo?.imageLinks?.thumbnail
});
})
return livros;
}