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

## Call Signature

```ts
function concatArrays<T>(
  first: readonly [T, T] | [T, ...T[]],
  second: readonly T[] | T[],
): readonly [T, T];
```

Defined in: [packages/common/src/Array.ts:415](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Array.ts#L415)

Concatenates two arrays, returning a new readonly array.

Returns a non-empty array when at least one input is non-empty.

### Example

```ts
concatArrays([1, 2], [3, 4]); // [1, 2, 3, 4]
concatArrays([], [1]); // [1] (non-empty)
concatArrays([1], []); // [1] (non-empty)
```

## Call Signature

```ts
function concatArrays<T>(
  first: readonly T[] | T[],
  second: readonly [T, T] | [T, ...T[]],
): readonly [T, T];
```

Defined in: [packages/common/src/Array.ts:420](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Array.ts#L420)

Second non-empty.

## Call Signature

```ts
function concatArrays<T>(
  first: readonly T[] | T[],
  second: readonly T[] | T[],
): readonly T[];
```

Defined in: [packages/common/src/Array.ts:425](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Array.ts#L425)

Both possibly empty.