[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/037c390af081e9944d616ff298a729515c5c5ab7/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