Skip to content

Commit

Permalink
feat: type declarations for new Set methods (#23090)
Browse files Browse the repository at this point in the history
Closes #22851
  • Loading branch information
dsherret authored Mar 27, 2024
1 parent 2cd9c6a commit 34a651e
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
31 changes: 31 additions & 0 deletions cli/tsc/dts/lib.esnext.collection.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,34 @@ interface MapConstructor {
keySelector: (item: T, index: number) => K,
): Map<K, T[]>;
}

interface Set<T> {
/**
* @returns a new Set containing all the elements in this Set and also all the elements in the argument.
*/
union<U>(other: Set<U>): Set<T | U>;
/**
* @returns a new Set containing all the elements which are both in this Set and in the argument.
*/
intersection<U>(other: Set<U>): Set<T & U>;
/**
* @returns a new Set containing all the elements in this Set which are not also in the argument.
*/
difference<U>(other: Set<U>): Set<T>;
/**
* @returns a new Set containing all the elements which are in either this Set or in the argument, but not in both.
*/
symmetricDifference<U>(other: Set<U>): Set<T | U>;
/**
* @returns a boolean indicating whether all the elements in this Set are also in the argument.
*/
isSubsetOf(other: Set<unknown>): boolean;
/**
* @returns a boolean indicating whether all the elements in the argument are also in this Set.
*/
isSupersetOf(other: Set<unknown>): boolean;
/**
* @returns a boolean indicating whether this Set has no elements in common with the argument.
*/
isDisjointFrom(other: Set<unknown>): boolean;
}
7 changes: 7 additions & 0 deletions tests/unit/esnext_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,10 @@ Deno.test(function intlListFormat() {
{ type: "element", value: "golang" },
]);
});

Deno.test(function setUnion() {
const a = new Set([1, 2, 3]);
const b = new Set([3, 4, 5]);
const union = a.union(b);
assertEquals(union, new Set([1, 2, 3, 4, 5]));
});

0 comments on commit 34a651e

Please sign in to comment.