泛型类型参数的语法是什么(在函数类型前面)

时间:2017-08-06 19:29:19

标签: typescript

我曾经在TypeScript中做过一些项目,但是当我最近阅读项目代码时,我看到了如下声明:

export interface SomeInterface<T> {
  <R>(paths: string[]): Observable<R>;
  <R>(Fn: (state: T) => R): Observable<R>;
}

我不确定TS中<R>的语法是什么,它出现在函数前面,类似于:(paths: string[]) : Observable<R>。如果有人有想法,你能不能给我一些线索。谢谢。

2 个答案:

答案 0 :(得分:1)

<R>基本上说该接口的实现必须具有<R>的通用方法。例如,对于

<R>(paths: string[]): Observable<R>

匹配该原型的有效方法是:

function foo<R>(paths: string[]): Observable<R> {
  // function code here
}

答案 1 :(得分:-1)

它只是通用的。

将它放在函数上意味着它只与函数本身有关,而不是整个界面。