API reference › @evolu/common › Set › filterSet
Call Signature
function filterSet<T, S>(
set: ReadonlySet<T>,
refinement: RefinementWithIndex<T, S>,
): ReadonlySet<S>;
Defined in: packages/common/src/Set.ts:277
Filters a set using a predicate or refinement function, returning a new readonly set.
When used with a refinement function (with value is Type syntax),
TypeScript will narrow the result type.
Filtering and refining
import { assertEqual, assertType, filterSet } from "@evolu/common";
const evens = filterSet(new Set([1, 2, 3, 4, 5]), (x) => x % 2 === 0);
assertEqual(evens, new Set([2, 4]));
const mixed: ReadonlySet<string | number> = new Set([1, "a", 2, "b"]);
const strings = filterSet(
mixed,
(value): value is string => typeof value === "string",
);
assertType<ReadonlySet<string>, typeof strings>();
assertEqual(strings, new Set(["a", "b"]));
Call Signature
function filterSet<T>(
set: ReadonlySet<T>,
predicate: PredicateWithIndex<T>,
): ReadonlySet<T>;
Defined in: packages/common/src/Set.ts:282
With predicate.