我正在使用 d3 和 typescript,d3 中有很多类型都是这样的
SomeType<U,T,V>
。示例:
merge(other: Selection<GElement, Datum, PElement, PDatum>): Selection<GElement, Datum, PElement, PDatum>
我查看了高级类型文档,但无法理解这些类型的含义。我不能说它们是否是具有这些子类型或其他类型的选择类型。
这些都是泛型。简而言之,它们让您参数化类型,从而允许您将其他类型传递给它。
因此,要使用您的示例,您可以执行以下操作:
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
我不确定打字稿,但至少在其他一些语言(例如 C#)上,T 类型是通用类型参数,基本上这意味着您不需要指定具体的对象类型。