(setA: Iterable<T>, setB: Iterable<T>)
| 579 | |
| 580 | /** Returns the items that are uniquely in setA */ |
| 581 | export function setDifference<T>(setA: Iterable<T>, setB: Iterable<T>): Set<T> { |
| 582 | const difference = new Set<T>(setA); |
| 583 | for (const elem of setB) { |
| 584 | difference.delete(elem); |
| 585 | } |
| 586 | return difference; |
| 587 | } |
| 588 | |
| 589 | const HAS_OWN = (object: unknown, prop: string) => |
| 590 | Object.prototype.hasOwnProperty.call(object, prop); |