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

```ts
function constant<T>(value: T): Thunk<T>;
```

Defined in: [packages/common/src/Function.ts:283](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Function.ts#L283)

Creates a [Thunk](https://evolu.dev/docs/api-reference/common/Function/type-aliases/Thunk) that always returns a precomputed value.

Use when the value is expensive to compute and you want to compute it once at
definition time rather than on every call.

### Example

```ts

let version = 0;
const readConfig = () => ({ version: ++version });
const getConstantConfig = constant(readConfig());
const getFreshConfig = () => readConfig();

assertSame(getConstantConfig(), getConstantConfig());
assertEqual(getConstantConfig().version, 1);
assertEqual(getFreshConfig().version, 2);
assertEqual(getFreshConfig().version, 3);
```