TypeScript中具有省略类型的Object.assign()未按预期工作

TypeScript中具有省略类型的Object.assign()未按预期工作,typescript,generics,functional-programming,typescript-generics,Typescript,Generics,Functional Programming,Typescript Generics,我正在尝试设计一个奇特的通用mergeArray函数,它可以在某个共享键matchKey上合并T和U类型的对象数组。还要注意,U扩展了T。我很接近,但显然我误解了对象。分配打字或省略的工作原理。以下是我目前掌握的情况: export const mergeArray=(参数:{ 阵列 现有数组:数组 matchKey:keyof T 后备值:忽略 }):数组=>{ 常数{ 梅吉纳雷, 现有阵列, 火柴, 后备价值观, }=参数 返回mergeInArray.map(itemToMergeIn=>

我正在尝试设计一个奇特的通用
mergeArray
函数,它可以在某个共享键
matchKey
上合并
T
U
类型的对象数组。还要注意,
U扩展了T
。我很接近,但显然我误解了
对象。分配
打字或
省略
的工作原理。以下是我目前掌握的情况:

export const mergeArray=(参数:{
阵列
现有数组:数组
matchKey:keyof T
后备值:忽略
}):数组=>{
常数{
梅吉纳雷,
现有阵列,
火柴,
后备价值观,
}=参数
返回mergeInArray.map(itemToMergeIn=>{
const existingItem=existingArray.find(
searchItem=>searchItem[matchKey]==itemToMergeIn[matchKey]
)
如果(现有项目){
返回对象.assign(existingItem,itemToMergeIn)
}
返回Object.assign(回退值、itemToMergeIn)//
Type '(Omit<U, keyof T> & T)[]' is not assignable to type 'U[]'.
  Type 'Omit<U, keyof T> & T' is not assignable to type 'U'.
    'U' could be instantiated with an arbitrary type which could be unrelated to 'Omit<U, keyof T> & T'.ts(2322)