【问题标题】:Type Observable<Object> is not assignable to type Observable类型 Observable<Object> 不可分配给类型 Observable
【发布时间】:2020-11-23 23:01:15
【问题描述】:
GetUserDetailsById(Id): Observable<userdetails> {

    return this.httpclient.get(this.BaseURI + '/user/UserDetailsById/' + Id).map((response: Response) => <userdetails>response.json())
  }

1. constructor(private httpclient: HttpClient)

2. export class userdetails
{
  idUser: number;
  firstName: string;
  lastName: string;
  email: string;
  permissions: string;
  isActive: boolean;
  displayRole: number;
}

删除 .map((response: Response) => response.json()) 时出错

Error : Type Observable&lt;Object&gt; is not assignable to type Observable我不想使用 .map((response: Response) => response.json()) 有什么建议吗?与 this.http 一起使用时,上面的代码工作正常 示例:

return this.http.get(this.BaseURI + '/user/UserDetailsById/' + Id).map((response: Response) => response.json())

  • 构造函数(私有http:Http)

【问题讨论】:

    标签: .net angular


    【解决方案1】:

    这是正确的语法:

    getFromHttp(): Observable<ResponseAfterMap> {
    return this.http.get<ResponseFromHttp>(this.BaseURI + '/user/UserDetailsById/' + Id).map((response: ResponseFromHttp) => response.json())
    }
    

    【讨论】:

      【解决方案2】:

      你需要定义 Observable 的泛型。

      在您的情况下,只需添加 Object 类型:

      GetUserDetailsById(Id): Observable<Object> {
          /* ... */
      }
      

      但是,如果您知道对象将是怎样的,您可能希望返回一些其他类型,例如接口。

      interface myInterface {
          id: number;
          name: string
      }
      
      GetUserDetailsById(Id): Observable<myInterface> {
          /* ... */
      }
      

      如果您不确定类型将是什么,您可以返回任何类型(但不建议这样做)。

      GetUserDetailsById(Id): Observable<any> {
          /* ... */
      }
      

      【讨论】:

        猜你喜欢
        • 2018-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-14
        • 2021-01-02
        • 2018-11-02
        • 2019-01-12
        相关资源
        最近更新 更多