1
resposta

Erro ao consumir API

Estava tendo o mesmo erro que este tópico, mas como ele já foi encerrado, vou documentar aqui.

Acredito que na versão do Angular (ou do TypeScript) em que o curso foi gravado, o tipo any estava implicito dentro de Object e no momento da chamada dentro app.component.httml não era apresentado erro de compilação abaixo:

Error: src/app/app.component.html:3:16 - error TS2339: Property 'url' does not exist on type 'Object'.

3   [url]="photo.url"
    ~~~
  src/app/app.component.ts:6:16
    6   templateUrl: './app.component.html',
                     ~~~~~~~~~~~~~~~~~~~~~~
    Error occurs in the template of component AppComponent.

Error: src/app/app.component.html:4:24 - error TS2339: Property 'description' does not exist on type 'Object'.

4   [description]="photo.description"
        ~~~~~~~~~~~
  src/app/app.component.ts:6:16
    6   templateUrl: './app.component.html',
            ~~~~~~~~~~~~~~~~~~~~~~
    Error occurs in the template of component AppComponent.

× Failed to compile.

Então, para contornar o problema, tive que mudar o tipo da variável photos em app.component.ts explicitando o tipo any ao invés de Object[]. Segue como ficou o código:

export class AppComponent {
  photos: any = [];

  constructor(http: HttpClient) {
    http
      .get('http://localhost:3000/flavio/photos')
      .subscribe(photos => this.photos = photos);
  }
}

Lembrando que estou num ponto específico do curso, então não sei o quanto isso seria destrutivo pro resto dele.

1 resposta

Tive o mesmo problema também, alguém sabe o porque? Fiz exatamente como vc fez e também funcionou.