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.