Utility types

This is a reference guide for globally-available utility types for common type transformations. You don't need to import these types to use them in your TypeScript programs.

Awaited<Type>

Recursively unwraps a Promise object.

Loading TypeScript...

Partial<Type>

Returns a new version of Type where all properties are optional.

Loading TypeScript...

Required<Type>

Returns a new version of Type where all properties are required.

Loading TypeScript...

Readonly<Type>

Returns a new version of Type where all properties are set to readonly. This will produce a type error

Loading TypeScript...
  • why freeze an object

Record<Keys, Type>

Produces an object type where keys are of type Keys and values are of Type. This utility is often used to map the properties of a type to another type.

Pick<Type, Keys>

Construct a type by picking Keys from Type.

Omit<Type, Keys>

Opposite of Pick.

Exclude<Type, Members>

Exclude all members of Type which are assignable to Members.

Extract<Type, Members>

Only include members of Type which are assignable to Members.

NonNullable<Type>

Excludes null and undefined from Type.

Parameters<Type>

Constructs a tuple type from the parameters of the given function.

ConstructorParameters<Type>

Constructs a tuple or array type from the constructor function type, or never if Type is not a function.

ReturnType<Type>

Return type of the function.

InstanceType<Type>

Instance type of a constructor function.

NoInfer<Type>

Blocks inference to the type.

ThisParameterType<Type>

Extracts the type of this, or unknown if function type has no this parameter.

OmitThisParameterType<Type>

Omits the this parameter type.

ThisType<Type>

Does not return a transformed type, but serves as a marker for contextual this.

Was this page helpful?