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