objectEquals.ts
Назначение файла
Модуль предоставляет функцию objectEquals, которая сравнивает два объекта по собственным ключам и значениям.
Общая информация
objectEquals полезен в вычисляемых атомах и вспомогательных хуках, когда результатом является плоский объект. Функция предотвращает лишние реактивные обновления, если набор ключей и значения остались прежними.
Концептуальная архитектура
Сравнение выполняется в несколько этапов:
- Быстрый выход при ссылочном равенстве
objA === objB. - Проверка длины массивов ключей.
- Проверка наличия каждого собственного ключа в
objB. - Сравнение значений через
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