[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) › createSet

## Call Signature

```ts
function createSet<T>(items: readonly [T, T]): NonEmptyReadonlySet<T>;
```

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

Creates a readonly set from an array.

Preserves non-empty type when the input array is non-empty.

### Example

```ts
createSet([1, 2, 3]); // NonEmptyReadonlySet<number>
createSet([] as ReadonlyArray<number>); // ReadonlySet<number>
```

## Call Signature

```ts
function createSet<T>(items: readonly T[]): ReadonlySet<T>;
```

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

Possibly empty set.