有没有办法使用TypeScript泛型进行传播操作?

时间:2017-02-11 17:36:17

标签: generics typescript

我有一个接受对象并将其与另一个对象合并的函数。我希望能够有一个通用的T代表正在采用的对象,因为Typescript知道输出对象包含相同的键,但也有新的键。

export interface ObjFactory<T> {
  someNewProp: string
  otherNewProp: string
  ...T
}

export interface InputObject {
  inputProp: string
}

然后输出对象将表示为

{
  someNewProp: string
  otherNewProp: string
  inputProp: string
}

有没有办法实现与此类似的东西?

1 个答案:

答案 0 :(得分:2)

如果您愿意导出type而不是接口,则可以使用Type Intersection来实现此目的。

export type ObjFactory<T> = T & {
  someNewProp: string
  otherNewProp: string
}

export interface InputObject {
  inputProp: string
}

type AFAIK唯一的缺点是类和接口无法扩展它们。