有没有办法使用 TypeScript 泛型进行扩展操作?

Joe*_*ina 5 generics typescript

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

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

export interface InputObject {
  inputProp: string
}
Run Code Online (Sandbox Code Playgroud)

那么输出对象将表示为

{
  someNewProp: string
  otherNewProp: string
  inputProp: string
}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现类似的目标?

Paa*_*rth 4

如果您愿意导出s 而不是接口,则可以使用类型交集来实现此目的。type

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

export interface InputObject {
  inputProp: string
}
Run Code Online (Sandbox Code Playgroud)

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