[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:309](https://github.com/evoluhq/evolu/blob/59dabb7c56c68040b30d3919013adeb2b40bad10/packages/common/src/Types.ts#L309)

Infers a broader type from a specific literal value type.

Examples:

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