Angular-类型'Object'在执行http get时缺少类型的以下属性

问题描述 投票:0回答:1

我使用jsonplaceholder渲染创建了伪造的API列表。我得到了我期望的输出,但是如下一个编译器错误我得到了我期望的输出,但是一个编译器错误**

src / app / posts / posts.component.ts:14:8中的错误-错误TS2696:“对象”类型可分配给很少的其他类型。您的意思是改用“ any”类型吗?类型'Object'缺少类型'any []'中的以下属性:length,pop,push,concat和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>
angular http-get
1个回答
0
投票

Typescript是一种类型化的语言(但仍编译为js)。因此,很可能您未在服务中指定要响应的对象类型(方法标头或.get<>泛型类型方法)。您不应该使用any,但要创建自己的类,该类将表示您在响应中得到的对象结构(或js对象)。

© www.soinside.com 2019 - 2024. All rights reserved.