Angular 在Rx的可观测类中,真正实际的误差类型真的存在吗?

Angular 在Rx的可观测类中,真正实际的误差类型真的存在吗?,angular,typescript,rxjs,observable,Angular,Typescript,Rxjs,Observable,我正试图实施更硬类型的编码结构,下面的intellisense信息引起了我的好奇心 (方法)可观察。订阅(下一个?:(值:响应)=>void,错误?:(错误:任意)=>void,complete?:()=>void):订阅(+2个重载) 现在,我确实理解了它的意思,但是我很惊讶为什么error参数是键入的any,而不是“真实的”。我知道,如果我将其用作any,则会有value字段和requestId 这是否意味着可观察的错误实例的结构完全依赖于响应的服务器,根本无法键入?可观察的是一个泛型类。您

我正试图实施更硬类型的编码结构,下面的intellisense信息引起了我的好奇心

(方法)可观察。订阅(下一个?:(值:响应)=>void,错误?:(错误:任意)=>void,complete?:()=>void):订阅(+2个重载)

现在,我确实理解了它的意思,但是我很惊讶为什么
error
参数是键入的
any
,而不是“真实的”。我知道,如果我将其用作
any
,则会有
value
字段和
requestId


这是否意味着可观察的
错误
实例的结构完全依赖于响应的服务器,根本无法键入?

可观察的
是一个泛型类。您正在调用的方法的版本最多使用三个参数:

subscribe(next?:(value:T)=>void,error?:(error:any)=>void,complete?:()=>void):订阅;
请注意,只有第一个回调
next
,在其定义中使用泛型类型
T
。这是因为您可以
抛出JavaScript中的任何内容,因此通用版本无法对
错误
回调可能收到的内容进行假设


获取更具体的错误类型的唯一方法是使用
error?:(error:E)=>void

创建一个
可观察的
,您可以
抛出JavaScript中的任何内容。这与服务器无关,因为在通用的
Observable
中,您不能对错误进行任何假设。