为什么 Angular 没有为 HttpClient.get(...) 选择正确的重载?

2023-12-14

我正在尝试将一些 HttpClient 调用(.get(...) 和 .post(...))抽象到 BaseService 类中,因为如果我的服务不这样做,我就必须复制标头和凭据等代码从基类继承。

在执行此操作时,由于某种原因,我的代码没有选择 get 上的通用重载。

以下方法调用成功选择了正确的 HttpClient.get(...) 重载:

enter image description here

但是,以下选择了不同的重载,我不知道如何修复它:

enter image description here

这是因为我错误地声明了私有选项字段吗?我在 API 文档中找不到更好/正确的声明方式,以便成功选择正确的重载。有人可以帮我让我的代码选择正确的(通用Observable<T>) HttpClient.get(...) 的重载?


这是因为您正在声明类型选项any.

通过这样做,编译器知道nothing关于接口/成员options,尽管您使用由 2 个属性组成的对象实例化其值。

重构为:

export class Foo {
   private options = {headers: {...}, withCredentials: true};
   ....
}

现在编译器可以infer的类型options,而不是静态读取它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Angular 没有为 HttpClient.get(...) 选择正确的重载? 的相关文章

随机推荐