Javascript 什么是<;R | T>;在可观察范围内<;R | T>;你喜欢角形的吗?

Javascript 什么是<;R | T>;在可观察范围内<;R | T>;你喜欢角形的吗?,javascript,angular,typescript,Javascript,Angular,Typescript,有时,我会遇到类似的代码片段: public getIdList():Observable<R|T>{ return this.http.get(`http://v3.xxx.com:8000/api/onelist/idlist`) .map(this.handleSuccess) .catch(this.handleError) } public getIdList():可观察{ 返回this.http.get(`http://v3.xxx.

有时,我会遇到类似的代码片段:

public getIdList():Observable<R|T>{
    return this.http.get(`http://v3.xxx.com:8000/api/onelist/idlist`)
      .map(this.handleSuccess)
      .catch(this.handleError)
  }
public getIdList():可观察{
返回this.http.get(`http://v3.xxx.com:8000/api/onelist/idlist`)
.map(此.handleSuccess)
.接住(这个.把手错误)
}
或:

public getIdList():可观察{
返回this.http.get(`http://v3.xxx.com:8000/api/onelist/idlist`)
.map(此.handleSuccess)
.接住(这个.把手错误)
}


有人能解释一下
的作用吗?

R | T
中的
可观察的
是一种联合类型。这意味着可观察的
类型是
R
T

对于
Observable
,Observable返回类型为
T
的数据。这就是所谓的。例如,
Observable
表示它返回一个类型为
number
的数据,编译器可以检测它,并在以后的部分中使用该类型

通用类型

interface A<T> {
   prop: T
}
接口A{
道具:T
}
我用它

const obj1: A<number> = { prop: 4 }
const obj1:A={prop:4}

这将把
obj1
的类型设置为
A
A
是泛型类型,并将其类型用于
prop
属性。将类型设置为
number
只需将传递的
number
类型放入
prop

这些类型都是泛型类型

最明显的例子是firebase:当您请求一个集合时,您可以使用该集合:

this.firestore.collection<User>('users')
然后,变量可以是字符串或数字。它对于intellisense非常有用,在Javascript中也是可能的,因为变量不是类型化的

this.firestore.collection<User>('users')
collection<T>(collectionName: string) { ... }
private ID: string | number;