Typescript 中像 SomeType<T, U, V> 这样的类型意味着什么?

Gab*_*ado 3 d3.js typescript typescript-generics

我将 d3 与 typescript 一起使用,d3 中有很多类似这样的类型SomeType<U,T,V>。例子:

merge(other: Selection<GElement, Datum, PElement, PDatum>): Selection<GElement, Datum, PElement, PDatum>
Run Code Online (Sandbox Code Playgroud)

我查看了高级类型文档,但无法理解这些类型的含义。我不能说它们是否是具有这些子类型或其他类型的选择类型。

Ale*_*yne 5

这些都是泛型。简而言之,它们允许您参数化类型,从而允许您将其他类型传递给它。

因此,要使用您的示例,您可以执行以下操作:

interface SomeType<T, U, V> {
  t: T
  u: U
  v: V
}

const foo: SomeType<string, number, { cool: boolean }> = {
  //                T       U       V
  t: 'a string',
  u: 123,
  v: { cool: true }
}
Run Code Online (Sandbox Code Playgroud)

操场

这里有很多关于泛型的文档:https://www.typescriptlang.org/docs/handbook/generics.html