首页 > 解决方案 > “对象”类型可分配给极少数其他类型。您是不是要改用“任何”类型

问题描述

当我尝试初始化“this.post”以分配给变量时,它不允许我这样做。我正在使用 Angular 8

import { Component, OnInit } from '@angular/core';
import { HttpClientModule, HttpClient, HttpBackend } from '@angular/common/http';
import { Observable, observable } from 'rxjs';


@Component({
  selector: 'app-post',
  templateUrl: './post.component.html',
  styleUrls: ['./post.component.css']
})
export class PostComponent implements OnInit {
  
  post: any[];
  
  
   constructor(private http: HttpClient) { 
      http.get('https://jsonplaceholder.typicode.com/posts').subscribe(responce => {

          this.post = responce

      })

     }

 
  ngOnInit() {
  }

}

标签: angular

解决方案


这里 TypeScript 抱怨类型不匹配,订阅函数参数有类型对象,你正在将它分配给其他类型

httpClient.get函数是通用的,意味着你可以告诉它什么是响应类型,如果你不提供它,它将默认设置为对象。

好像您正在将您的回复分配给任何类型的帖子

所以这会起作用

 constructor(private http: HttpClient) { 
          http.get<any[]>('https://jsonplaceholder.typicode.com/posts').subscribe(responce => {        
              this.post = responce       
          })        
         }

推荐阅读