You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
635 B
21 lines
635 B
// TODO: Extend this to symbol when TS allows symbols in index signatures: |
|
// https://github.com/Microsoft/TypeScript/issues/1863 |
|
/** |
|
Invert the key/value of an object. Example: `{foo: 'bar'}` → `{bar: 'foo'}`. |
|
|
|
@example |
|
``` |
|
import invertKeyValue = require('invert-kv'); |
|
|
|
invertKeyValue({foo: 'bar', '🦄': '🌈'}); |
|
//=> {bar: 'foo', '🌈': '🦄'} |
|
``` |
|
*/ |
|
declare function invertKeyValue< |
|
KeyType extends string | number, |
|
ValueType extends string | number | symbol |
|
>( |
|
object: {[key in KeyType]: ValueType} |
|
): {[key in ValueType]: KeyType extends number ? Exclude<KeyType, number> | string : KeyType}; |
|
|
|
export = invertKeyValue;
|
|
|