[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) › InferType

```ts
type InferType<A> =
  A extends Type<any, infer T, any, any, any, any> ? T : never;
```

Defined in: [packages/common/src/Type.ts:537](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Type.ts#L537)

Extracts the type from a [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type).

### Example

```ts
const User = object({
  name: NonEmptyTrimmedString100,
  age: optional(PositiveInt),
});

// Use interface for objects. TypeScript displays the interface name
// instead of expanding all properties.
interface User extends InferType<typeof User> {}
```