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

```ts
type WidenLiteral<T> = T extends string
  ? string
  : T extends number
    ? number
    : T extends boolean
      ? boolean
      : T extends bigint
        ? bigint
        : T;
```

Defined in: [packages/common/src/Types.ts:165](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Types.ts#L165)

Infers a broader type from a specific literal value type.

Examples:

- "foo" -> string
- 42 -> number
- 42n -> bigint
- True -> boolean