آبجکت/از نسخه
1.38.0merge
یک شیء جدید با ترکیب سطحی ویژگیهای یک شیء و یک source ایجاد میکند؛ در صورت وجود کلید مشترک، مقدار source جایگزین مقدار قبلی میشود.
merge(object, source):Omit<T, keyof U> & Uنحوه عملکرد
این تابع از spread syntax استفاده میکند تا یک شیء جدید ایجاد کند. ابتدا ویژگیهای object و سپس ویژگیهای source کپی میشوند.
اولویت ویژگیها
اگر هر دو شیء دارای یک کلید یکسان باشند، مقدار source جایگزین مقدار object میشود، زیرا source بعد از object spread میشود.
ترکیب سطحی
این merge سطحی است. اشیای تو در تو و آرایهها بهصورت بازگشتی merge یا clone نمیشوند و reference آنها کپی میشود.
پارامترها
objectTالزامیشیء پایهای که باید با source ترکیب شود.
sourceUالزامیشیئی که ویژگیهای آن به شیء پایه اضافه میشوند یا ویژگیهای موجود را جایگزین میکنند.
مقدار بازگشتی
Omit<T, keyof U> & Uیک شیء جدید با ترکیب سطحی ویژگیهای هر دو شیء که در آن ویژگیهای source اولویت دارند.
مثالها
01
استفاده پایه
TypeScript
const object = {
name: "Amir",
age: 22,
};
const source = {
role: "developer",
};
merge(object, source);
// {
// name: "Amir",
// age: 22,
// role: "developer",
// }02
source ویژگیهای موجود را جایگزین میکند
TypeScript
const object = {
name: "Amir",
age: 22,
};
const source = {
age: 25,
};
merge(object, source);
// {
// name: "Amir",
// age: 25,
// }03
اضافه کردن ویژگیهای جدید
TypeScript
const object = {
name: "Amir",
};
const source = {
age: 22,
role: "developer",
};
merge(object, source);
// {
// name: "Amir",
// age: 22,
// role: "developer",
// }04
اشیای تو در تو بهصورت عمیق merge نمیشوند
TypeScript
const object = {
user: {
name: "Amir",
age: 22,
},
};
const source = {
user: {
role: "developer",
},
};
merge(object, source);
// {
// user: {
// role: "developer",
// },
// }05
اشیای خالی
TypeScript
merge({}, {
name: "Amir",
});
// {
// name: "Amir",
// }
merge({
name: "Amir",
}, {});
// {
// name: "Amir",
// }06
اشیای اصلی تغییر نمیکنند
TypeScript
const object = {
name: "Amir",
};
const source = {
age: 22,
};
const result = merge(object, source);
console.log(object);
// {
// name: "Amir",
// }
console.log(source);
// {
// age: 22,
// }07
مقادیر falsy حفظ میشوند
TypeScript
const object = {
active: true,
count: 10,
};
const source = {
active: false,
count: 0,
};
merge(object, source);
// {
// active: false,
// count: 0,
// }ساخته شده با@cyref/js·مستندات رسمی