Skip to content

entries ​

The entries() method returns an array of an object's key-value pairs with strict typing.

Interactive example ​

Syntax ​

typescript
type GetEntry<
	GenericKey extends ObjectKey,
	GenericInput extends unknown,
> = GenericInput extends any
	? GenericKey extends string | number
		? [`${GenericKey}`, GenericInput]
		: never
	: never;

type GetEntries<
	GenericObject extends object,
> = (
	{
		[Prop in keyof GenericObject]-?: GetEntry<Prop, GenericObject[Prop]>
	}[keyof GenericObject]
) extends infer InferredResult extends ObjectEntry
	? IsEqual<InferredResult, never> extends true
		? []
		: InferredResult[]
	: never;

function entries<
	GenericInput extends object
>(
	input: GenericInput
): SimplifyTopLevel<GetEntries<GenericInput>>

Parameters ​

  • input: The object whose key-value pairs you want to retrieve.

Return value ​

An array of tuples [key, value] with strict typing that preserves the exact types of each property.

See also ​

  • keys - Returns an array of an object's keys
  • values - Returns an array of an object's values
  • entry - Creates a typed key-value pair
  • fromEntries - Builds an object from entries

Sources ​

Released under the MIT license.