打字稿中像 SomeType<T, U, V> 这样的类型是什么意思?

问题描述 投票:0回答:2

我正在使用 d3 和 typescript,d3 中有很多类型都是这样的

SomeType<U,T,V>
。示例:

merge(other: Selection<GElement, Datum, PElement, PDatum>): Selection<GElement, Datum, PElement, PDatum>

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

typescript d3.js typescript-generics
2个回答
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 }
}

游乐场

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


2
投票

我不确定打字稿,但至少在其他一些语言(例如 C#)上,T 类型是通用类型参数,基本上这意味着您不需要指定具体的对象类型。

© www.soinside.com 2019 - 2024. All rights reserved.