Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 返回多种类型的通用观测值的服务(可能)-无法订阅_Angular_Typescript_Generics_Rxjs - Fatal编程技术网

Angular 返回多种类型的通用观测值的服务(可能)-无法订阅

Angular 返回多种类型的通用观测值的服务(可能)-无法订阅,angular,typescript,generics,rxjs,Angular,Typescript,Generics,Rxjs,我正在使用Angular构建一个应用程序。我一直在寻找解决办法,但我想不出一个。 我创建了一个泛型类型为T的抽象服务: export abstract class AbstractService<T>{ public _url; abstract getRequest(): Observable<T> | Observable<T[]>; abstract postRequest(val: T| null): Obse

我正在使用Angular构建一个应用程序。我一直在寻找解决办法,但我想不出一个。 我创建了一个泛型类型为T的抽象服务:

  export abstract class AbstractService<T>{

      public _url;

     abstract getRequest(): Observable<T> | Observable<T[]>;

     abstract postRequest(val: T| null): Observable<T>;

  }
我希望调用服务的组件根据可观察对象的不同行为有所不同。 我试着按如下方式进行打字检查:

let observable = this.service.getRequest()
if(typeof(observable) === typeof(Observable<T>)){...}
let observable=this.service.getRequest()
如果(typeof(observable)==typeof(observable)){…}
那也没用。
甚至可以检查类型吗?是否有处理此问题的机制?

在应用程序目录中,您在哪里实现了抽象服务。我将它注入组件,然后通过模板绑定来填充它。像这样:Show
notAbstractService
,它能很好地实现所有功能吗?您是否尝试过:
let observable:observable | observable=this.service.getRequest()
let observable = this.service.getRequest()
if(typeof(observable) === typeof(Observable<T>)){...}