diff options
-rw-r--r-- | cli/tsc/dts/lib.esnext.collection.d.ts | 31 | ||||
-rw-r--r-- | tests/unit/esnext_test.ts | 7 |
2 files changed, 38 insertions, 0 deletions
diff --git a/cli/tsc/dts/lib.esnext.collection.d.ts b/cli/tsc/dts/lib.esnext.collection.d.ts index a48fd93d5..834b1a6b1 100644 --- a/cli/tsc/dts/lib.esnext.collection.d.ts +++ b/cli/tsc/dts/lib.esnext.collection.d.ts @@ -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; +} diff --git a/tests/unit/esnext_test.ts b/tests/unit/esnext_test.ts index 6b2334f42..cb40cc241 100644 --- a/tests/unit/esnext_test.ts +++ b/tests/unit/esnext_test.ts @@ -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])); +}); |