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

TypeScript utility types.

## Functions

| Function                                                                      | Description                                                                                                                                            |
| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [isPromiseLike](https://evolu.dev/docs/api-reference/common/Types/functions/isPromiseLike) | Type guard to check if a value is a [PromiseLike](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables). |

## Type Aliases

| Type Alias                                                                                     | Description                                                                          |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| [Awaitable](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Awaitable)                       | A value that can be awaited.                                                         |
| [Callback](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Callback)                         | A function that receives a value and returns nothing.                                |
| [CallbackWithTeardown](https://evolu.dev/docs/api-reference/common/Types/type-aliases/CallbackWithTeardown) | A function that receives a value and optionally returns a teardown function.         |
| [Digit](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Digit)                               | Single digit 0-9. Useful for template literal type validation.                       |
| [Digit1To23](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Digit1To23)                     | Numeric string 1-23. Useful for hours validation.                                    |
| [Digit1To51](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Digit1To51)                     | Numeric string 1-51. Useful for weeks validation.                                    |
| [Digit1To59](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Digit1To59)                     | Numeric string 1-59. Useful for minutes, seconds validation.                         |
| [Digit1To6](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Digit1To6)                       | Numeric string 1-6. Useful for days validation.                                      |
| [Digit1To9](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Digit1To9)                       | Digit 1-9. Useful for template literal type validation.                              |
| [Digit1To99](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Digit1To99)                     | Numeric string 1-99. Useful for years validation.                                    |
| [DistributiveOmit](https://evolu.dev/docs/api-reference/common/Types/type-aliases/DistributiveOmit)         | Removes keys from each member of a union.                                            |
| [ExtractType](https://evolu.dev/docs/api-reference/common/Types/type-aliases/ExtractType)                   | Extracts members of a discriminated union by their `type` literal.                   |
| [Int1To100](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Int1To100)                       | Numeric literal 1-100.                                                               |
| [Int1To99](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Int1To99)                         | Numeric literal 1-99.                                                                |
| [Literal](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Literal)                           | String, number, bigint, boolean, undefined, null                                     |
| [Mutable](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Mutable)                           | Removes `readonly` modifier from all properties of a type.                           |
| [NewKeys](https://evolu.dev/docs/api-reference/common/Types/type-aliases/NewKeys)                           | Constrains `T` to only contain keys not present in `Existing`.                       |
| [NullablePartial](https://evolu.dev/docs/api-reference/common/Types/type-aliases/NullablePartial)           | Makes properties optional if they accept `null` as a value.                          |
| [NumberFromString](https://evolu.dev/docs/api-reference/common/Types/type-aliases/NumberFromString)         | Parses a numeric literal type from a string literal.                                 |
| [PartialProp](https://evolu.dev/docs/api-reference/common/Types/type-aliases/PartialProp)                   | Makes a specific property of an object optional while keeping others unchanged.      |
| [Predicate](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Predicate)                       | Checks a condition on a value and returns a boolean.                                 |
| [PredicateWithIndex](https://evolu.dev/docs/api-reference/common/Types/type-aliases/PredicateWithIndex)     | Checks a condition on a value at a given index and returns a boolean.                |
| [Refinement](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Refinement)                     | A type guard function that refines type `A` to a narrower type `B`.                  |
| [RefinementWithIndex](https://evolu.dev/docs/api-reference/common/Types/type-aliases/RefinementWithIndex)   | A type guard function that refines type `A` to a narrower type `B` at a given index. |
| [Simplify](https://evolu.dev/docs/api-reference/common/Types/type-aliases/Simplify)                         | Simplify an intersection type into a single mapped type.                             |
| [UnionToIntersection](https://evolu.dev/docs/api-reference/common/Types/type-aliases/UnionToIntersection)   | Converts a union to an intersection.                                                 |
| [WidenLiteral](https://evolu.dev/docs/api-reference/common/Types/type-aliases/WidenLiteral)                 | Infers a broader type from a specific literal value type.                            |