consultar ( opcion: string, articulo: Articulo ): Observable<Date[]> {
return this.http.get<Date[]>( this.rootUrl + "consultar?opcion=" + opcion, articulo );
}
问题:类型“Observable”无法分配给类型“Observable〈Date[]〉”。类型“ArrayBuffer”缺少类型“Date[]”的以下属性:长度、弹出、推送、连续以及27种以上。
3条答案
按热度按时间hfyxw5xn1#
由于已接受的建议编辑队列现在已满-2022年6月25日-我决定写这个答案,其中包含更多的细节和例子来阐述和说明这个问题:
阐述问题
我有一个接口:
和负责执行HTTP调用的服务层:
当我们在做类似这样的事情时,我们需要使用这个重载:
而我们没有。
溶液
问题来自于我们接口中的
| null
,我们需要保证我们不会将null
值传递给http参数,JSON
可以做到这一点,所以在服务层中,我将get
方法修改如下:现在Typescript不再歇斯底里。多亏了挑剔的Typescript,我们的代码更安全,更容易理解。
gzjq41n42#
get中的第二个参数应该是options,但您可能正在向它传递数据。
Angular 文档获取方法
构造将正文解释为ArrayBuffer并在ArrayBuffer中返回响应的GET请求。
dwbf0jvd3#
我自己在尝试在后续请求中使用响应头时遇到了这个问题。
对我来说,解决办法是在URL后面添加一个!。不确定为什么一个可空字符串会导致Typescript认为我的Observable正在返回一个ArrayBuffer。