Files
ETB/ETB-FrontEnd/node_modules/fast-equals/recipes/explicit-property-check.md
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

878 B

Explicit property check

Sometimes it is necessary to squeeze every once of performance out of your runtime code, and deep equality checks can be a bottleneck. When this is occurs, it can be advantageous to build a custom comparison that allows for highly specific equality checks.

An example where you know the shape of the objects being passed in, where the foo property is a simple primitive and the bar property is a nested object:

import { createCustomEqual } from 'fast-equals';
import type { TypeEqualityComparator } from 'fast-equals';

interface SpecialObject {
  foo: string;
  bar: {
    baz: number;
  };
}

const areObjectsEqual: TypeEqualityComparator<SpecialObject, undefined> = (
  a,
  b,
) => a.foo === b.foo && a.bar.baz === b.bar.baz;

const isSpecialObjectEqual = createCustomEqual({
  createCustomConfig: () => ({ areObjectsEqual }),
});