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

```ts
const Int32: brand(
  "Int32",
  between(-2147483648, 2147483647)(Int),
);
```

Defined in: [packages/common/src/Type.ts:12326](https://github.com/evoluhq/evolu/blob/bc4578a260dd15d5bbf94b83765ca05984d194cb/packages/common/src/Type.ts#L12326)

Signed 32-bit [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1).

Accepts integers from -2147483648 through 2147483647, inclusive, the range of
32-bit integers in Protocol Buffers, PostgreSQL `integer`, and JavaScript
bitwise operators. Like [Int](https://evolu.dev/docs/api-reference/common/Type/variables/Int-1), it accepts `-0`. [Int64](https://evolu.dev/docs/api-reference/common/Type/variables/Int64) is the
signed 64-bit bigint counterpart.

### Example

```ts
import { assertEqual, assertErr, assertOk, Int32 } from "@evolu/common";

assertOk(Int32.fromUnknown(-2147483648), -2147483648);
assertOk(Int32.fromUnknown(2147483647), 2147483647);
assertErr(Int32.fromUnknown(1.5), { type: "Int", value: 1.5 });

const tooLarge = Int32.fromUnknown(2147483648);
assertErr(tooLarge, {
  type: "Between-2147483648-2147483647",
  value: 2147483648,
  min: -2147483648,
  max: 2147483647,
});
assertEqual(
  Int32.formatError(tooLarge.error),
  "The value 2147483648 must be between -2147483648 and 2147483647, inclusive.",
);
```