ts-extras
Version:
Essential utilities for TypeScript projects
27 lines (20 loc) • 924 B
TypeScript
/**
A strongly-typed version of `Object.fromEntries()`.
This is useful since `Object.fromEntries()` always returns `{[key: string]: T}`. This function returns a strongly-typed object from the given array of entries.
- [TypeScript issues about this](https://github.com/microsoft/TypeScript/issues/35745)
@example
```
import {objectFromEntries} from 'ts-extras';
const stronglyTypedObjectFromEntries = objectFromEntries([
['a', 123],
['b', 'someString'],
['c', true],
]);
//=> {a: number; b: string; c: boolean}
const untypedEntries = Object.fromEntries(entries);
//=> {[key: string]: string}
```
@category Improved builtin
@category Type guard
*/
export declare const objectFromEntries: <Key extends PropertyKey, Entries extends ReadonlyArray<readonly [Key, unknown]>>(values: Entries) => { [K in Extract<Entries[number], readonly [Key, unknown]>[0]]: Extract<Entries[number], readonly [K, unknown]>[1]; };