Angular - Типу "Object" не хватает следующих свойств из типа при выполнении http get - PullRequest
0 голосов
/ 28 марта 2020

Я создал поддельный API, используя рендеринг jsonplaceholder в список. я получил вывод, что я ожидаю, но одну ошибку компилятора, как показано ниже, я получил вывод, что я ожидаю, но одну ошибку компилятора **

ОШИБКА в src / app / posts / posts.component.ts: 14: 8 - ошибка TS2696: тип «Объект» можно назначить очень немногим другим типам. Вы хотели использовать вместо этого любой тип? Типу «Объект» не хватает следующих свойств типа «любой []»: длина, поп, пу sh, конкат и еще 26.

 14        this.posts = response;

Это мой .ts

    import { Component, OnInit } from '@angular/core';
    import { HttpClient, HttpErrorResponse, HttpResponse } from '@angular/common/http';

    @Component({
      selector: 'posts',`enter code here
      templateUrl: './posts.component.html',
      styleUrls: ['./posts.component.css']
    })
    export class PostsComponent {
      posts : any[];
      constructor(private http:HttpClient) {
        http.get("http://jsonplaceholder.typicode.com/posts")
        .subscribe(response => { 
           this.posts = response;
          });
    }
    }

это мой файл шаблона

    <ul class="list-group">
        <li  
        *ngFor="let post of posts" 
        class="list-group-item">
            {{post.body}}
        </li>
    </ul>

1 Ответ

1 голос
/ 28 марта 2020

Typescript является типизированным языком (но по-прежнему компилируется в js). Таким образом, вы, вероятно, не указали в сервисе, какой тип объекта вы получаете в ответе (либо в заголовке метода, либо в методе .get<> generi c type). Вы не должны использовать any, но создайте свой собственный класс, который будет представлять структуру объекта, которую вы получаете в ответе (или js объект).

...