types-kit.entry.md
September 4, 2023 ยท View on GitHub
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>