Skip to content

objectEquals.ts

Назначение файла

Модуль предоставляет функцию objectEquals, которая сравнивает два объекта по собственным ключам и значениям.

Общая информация

objectEquals полезен в вычисляемых атомах и вспомогательных хуках, когда результатом является плоский объект. Функция предотвращает лишние реактивные обновления, если набор ключей и значения остались прежними.

Концептуальная архитектура

Сравнение выполняется в несколько этапов:

  1. Быстрый выход при ссылочном равенстве objA === objB.
  2. Проверка длины массивов ключей.
  3. Проверка наличия каждого собственного ключа в objB.
  4. Сравнение значений через defaultEquals.

Таким образом модуль реализует неглубокое структурное сравнение без рекурсивного обхода вложенных объектов.

Описание публичного API

objectEquals: ValueEqualityFn<Readonly<Record<string, unknown>>>

  • objA: первый объект для сравнения.
  • objB: второй объект для сравнения.
  • Возвращает true, если оба объекта имеют одинаковый набор собственных ключей и равные значения.

Примеры использования

ts
import { objectEquals } from '@nrgyjs/core';

objectEquals({ a: 1, b: 2 }, { a: 1, b: 2 }); // true
objectEquals({ a: 1 }, { a: 2 }); // false
objectEquals({ a: { x: 1 } }, { a: { x: 1 } }); // false