import { action, ObservableSet } from "mobx"; export class ToggleSet extends Set { public toggle(value: T): void { if (!this.delete(value)) { // Set.prototype.delete returns false if `value` was not in the set this.add(value); } } } export class ObservableToggleSet extends ObservableSet { @action public toggle(value: T): void { if (!this.delete(value)) { // Set.prototype.delete returns false if `value` was not in the set this.add(value); } } }