[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:266](https://github.com/evoluhq/evolu/blob/ca15b4661c40fedb9f47434497086039cbdea38e/packages/common/src/Function.ts#L266)

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();

expect(getConstantConfig()).toBe(getConstantConfig());
expect(getConstantConfig().version).toBe(1);
expect(getFreshConfig().version).toBe(2);
expect(getFreshConfig().version).toBe(3);
```