PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` type MapKey = BaseType extends Map ? KeyType : never; type MapValue = BaseType extends Map ? ValueType : never; export type ArrayEntry = [number, BaseType[number]]; export type MapEntry = [MapKey, MapValue]; export type ObjectEntry = [keyof BaseType, BaseType[keyof BaseType]]; export type SetEntry = BaseType extends Set ? [ItemType, ItemType] : never; /** Many collections have an `entries` method which returns an array of a given object's own enumerable string-keyed property [key, value] pairs. The `Entry` type will return the type of that collection's entry. For example the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries|`Object`}, {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/entries|`Map`}, {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/entries|`Array`}, and {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/entries|`Set`} collections all have this method. Note that `WeakMap` and `WeakSet` do not have this method since their entries are not enumerable. @see `Entries` if you want to just access the type of the array of entries (which is the return of the `.entries()` method). @example ``` import {Entry} from 'type-fest'; interface Example { someKey: number; } const manipulatesEntry = (example: Entry) => [ // Does some arbitrary processing on the key (with type information available) example[0].toUpperCase(), // Does some arbitrary processing on the value (with type information available) example[1].toFixed(), ]; const example: Example = {someKey: 1}; const entry = Object.entries(example)[0] as Entry; const output = manipulatesEntry(entry); // Objects const objectExample = {a: 1}; const objectEntry: Entry = ['a', 1]; // Arrays const arrayExample = ['a', 1]; const arrayEntryString: Entry = [0, 'a']; const arrayEntryNumber: Entry = [1, 1]; // Maps const mapExample = new Map([['a', 1]]); const mapEntry: Entry = ['a', 1]; // Sets const setExample = new Set(['a', 1]); const setEntryString: Entry = ['a', 'a']; const setEntryNumber: Entry = [1, 1]; ``` */ export type Entry = BaseType extends Map ? MapEntry : BaseType extends Set ? SetEntry : BaseType extends unknown[] ? ArrayEntry : BaseType extends object ? ObjectEntry : never;