[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Set](https://evolu.dev/docs/api-reference/common/Set) › addToSet

```ts
function addToSet<T>(set: ReadonlySet<T>, item: T): NonEmptyReadonlySet<T>;
```

Defined in: [packages/common/src/Set.ts:127](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Set.ts#L127)

Returns a new readonly set with an item added.

If the item already exists, returns a new set with the same elements (still a
new reference for change detection).

### Example

```ts
addToSet(new Set([1, 2]), 3); // Set {1, 2, 3}
addToSet(new Set([1, 2]), 2); // Set {1, 2} (new reference)
```