我有一个接口Foo
interface Foo<T, K, U> {
// omit implementation details
}
它需要3个通用参数。。。所以每当我需要使用这个接口时,我都需要明确地将3种类型传递给它的通用接口。我想知道是否有一种方法可以定义一个新的类型来分组3个类型,然后我们将一个分组的类型传递给这个泛型,这样它就可以将一个类型而不是3个类型传递给它的泛型接口。或者,我们可以将类型展开,这样它就填充了通用接口的3个插槽。
你可以试试这个:
interface Foo<T extends { first: any, second: any, third: any }> {
property1: T['first']
property2: T['second']
property3: T['third']
}
const bar: Foo<{
first: string,
second: number,
third: boolean
}> = {
property1: 'a',
property2: 1,
property3: true
}
或者使用元组:
interface Foo<T extends [any, any, any]> {
property1: T[0]
property2: T[1]
property3: T[2]
}
const bar: Foo<[string, number, boolean]> = {
property1: 'a',
property2: 1,
property3: true
}