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

```ts
function anyResult<T>(
  results: T,
): Result<InferOk<T[number]>, InferErr<T[number]>>;
```

Defined in: [packages/common/src/Result.ts:1391](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Result.ts#L1391)

Returns the first successful [Result](https://evolu.dev/docs/api-reference/common/Result/type-aliases/Result).

If all results fail, returns the last error.

Requires a non-empty array — there's no "first success" with zero
participants. Use [isNonEmptyArray](https://evolu.dev/docs/api-reference/common/Array/functions/isNonEmptyArray) to guard.

### Example

```ts
import {
  anyResult,
  assertOk,
  assertType,
  err,
  ok,
  type Result,
  type Typed,
} from "@evolu/common";

const getCachedPrice = (): Result<number, CacheMissError> =>
  err({ type: "CacheMiss" });

interface CacheMissError extends Typed<"CacheMiss"> {}

const number = anyResult([getCachedPrice(), ok(42)]);
assertType<Result<number, CacheMissError>, typeof number>();
assertOk(number, 42);
```