CyrefJS
CCyrefJS
EN
بازگشت به مستندات
آبجکت/از نسخه 1.38.0

merge

یک شیء جدید با ترکیب سطحی ویژگی‌های یک شیء و یک 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·مستندات رسمی