types-kit.entry.md

September 4, 2023 ยท View on GitHub

Home > types-kit > Entry

Entry type

return the type of that collection's entry.

Signature:

export type Entry<T> = T extends ReadonlyMap<unknown, unknown>
  ? MapEntry<T>
  : T extends ReadonlySet<unknown>
  ? SetEntry<T>
  : T extends readonly unknown[]
  ? IsTuple<T> extends true
    ? ObjectEntry<T>
    : ArrayEntry<T>
  : IsObject<T> extends true
  ? T extends object
    ? ObjectEntry<T>
    : never
  : never

References: MapEntry, SetEntry, IsTuple, ObjectEntry, ArrayEntry, IsObject

Example

type Foo = [1, 2]
type Bar = { a: 1, b: 2 }

// Expect: [0 | 1, 1 | 2]
type EntryType = Entry<Foo>
// Expect: ['a' | 'b', 1 | 2]
type EntryType2 = Entry<Bar>