149. 实现 ObjectAssign
困难
你有一个目标对象和一个或多个源对象数组。你需要将属性从源复制到目标,如果源中有相同的属性,则始终保留源的属性,并删除目标对象的属性。(灵感来自 JavaScript 中的 Object.assign
API)。
例如:
type Target = {
a: 'a'
}
type Origin1 = {
b: 'b'
}
type Result = Assign<Target, [Origin1]>
// expected to be
// {
// a: 'a'
// b: 'b'
// }
更多示例:
type Target = {
a: 'a'
d: {
hi: 'hi'
}
}
type Origin1 = {
a: 'a1',
b: 'b'
}
type Origin2 = {
b: 'b2',
c: 'c'
}
type Result = Assign<Target, [Origin1, Origin2]>
// expected to be
// {
// a: 'a1',
// b: 'b2',
// c: 'c'
// d: {
// hi: 'hi'
// }
// }