Skip to content

defaultEquals.ts

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

Модуль предоставляет функцию сравнения defaultEquals, которая используется в @nrgyjs/core как стратегия сравнения значений по умолчанию.

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

defaultEquals применяется в atom() и compute(), если пользователь не передал собственную функцию equal. Это базовая стратегия сравнения для решения, считать ли новое значение изменением и нужно ли уведомлять наблюдателей.

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

Реализация намеренно минимальна и делегирует сравнение встроенной функции Object.is. Благодаря этому пакет получает корректную обработку:

  • примитивов;
  • ссылочного сравнения объектов;
  • специальных случаев вроде NaN и -0.

Модуль используется как общий низкоуровневый dependency в реактивном runtime и в других функциях сравнения, например в objectEquals.

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

defaultEquals: ValueEqualityFn<unknown>

  • Сравнивает два значения через Object.is.
  • Возвращает true, если значения считаются одинаковыми для целей реактивного обновления.

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

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

defaultEquals(1, 1); // true
defaultEquals(NaN, NaN); // true
defaultEquals({}, {}); // false