UNPKG

invert-kv

Version:

Invert the key/value of an object. Example: `{foo: 'bar'}` → `{bar: 'foo'}`

17 lines (14 loc) 372 B
/** Invert the key/value of an object. @example ``` import invertKeyValue from 'invert-kv'; invertKeyValue({foo: 'bar', '🦄': '🌈'}); //=> {bar: 'foo', '🌈': '🦄'} ``` */ export default function invertKeyValue< T extends Record<PropertyKey, PropertyKey> >( object: T ): {[P in keyof T as T[P]]: keyof T extends number ? Exclude<keyof T, number> | string : P};