如何处理angular中的http响应类型?

How to deal with http response type in angular?

我写了一个http get请求:

  getProduct(path, opts?): Observable<Product> {
    return this.http.get(path, opts?.httpParams).pipe(
      map((res:IProduct) => new Product(res))
    );
  }

我的产品 class 使用接口构造:

export Interface IProduct {
  productName:string;
  productCode:string;
  descr:string;
}

我想当我在 map() 中指定一个接口作为类型时,它会检查响应的内容。如果它错过了一些 属性 它会给我一个错误或什么的。 但它没有,它只是传递所有内容以尝试实例化一个产品对象。

我是不是对Interface的用法理解有误?如何确保响应与接口匹配?

不幸的是,不,您声明的类型没有任何作用,甚至不能用作检查您收到的数据的完整性,或者它与接口或 类 您定义的匹配程度。

TypeScript 的类型纯粹是一项 compile-time 功能,可帮助您编写更一致的代码,并使 IntelliSense 等功能更智能、更有用。如果您想确保获得有效数据,则必须自己明确检查响应。