尝试缓存 HttpClient 响应但获取 'HttpResponse<Blob>' 无法分配给类型 'Response' 的参数

Trying to Cache HttpClient Response but getting 'HttpResponse<Blob>' is not assignable to parameter of type 'Response'

所以,基本上在我的 Angular 项目中,我试图通过以下代码行使用 Cache API 缓存 HttpClient 的请求和响应:

from(caches.open(this.getCacheName(this.chatAttachmentsCache)))
  .pipe(map(cache => {
    cache.put(request, response);
  }));

请求参数是请求的URL,响应参数是请求的响应。

我将从成功的 HttpClient GET 请求中获取的 HttpResponse 对象传递给 cache.put 调用作为响应。但是,我一直在文本编辑器中收到此错误。

Argument of type 'HttpResponse<Blob>' is not assignable to parameter of type 'Response'.
  Type 'HttpResponse<Blob>' is missing the following properties from type 'Response': redirected, trailer, bodyUsed, arrayBuffer, and 4 more

我从以下代码行获取 HttpResponse 对象:

    return this.httpClient.get(url, { responseType: "blob", observe: "response" });

我真的不知道如何解决这个问题。这是否意味着我不能在 Angular 中将缓存 API 与 HttpClient 一起使用?或者是否有一些解决方法来处理此类问题?

提前致谢。

我设法解决了这个问题。

对于遇到相同问题的任何人。我通过构造函数创建了一个新的 Response 对象,并根据文档 here 将 HttpResponse 中的正文、状态和状态文本传递给它。这是一个例子:

const responseAsResponseType = new Response(response.body, {
  "status": response.status,
  "statusText": response.statusText,
});