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