TypeScript: Reverse map key-value type to value-key
给出类型为
的对象
1 2 3 4 | type Key2Value = { foo:"bar" voo:"doo" } |
提供了这种类型的值始终是字符串类型,如何构造实用程序类型
1 2 3 4 5 6 | type Value2Key = ReverseMap<Key2Value> // yields: type Value2Key = { bar:"foo" doo:"voo" } |
1 2 3 4 5 6 7 8 9 10 11 12 | type Key2Value = { foo:"bar" voo:"doo" } type ReverseMap<T extends Record<keyof T, keyof any>> = { [P in T[keyof T]]: { [K in keyof T]: T[K] extends P ? K : never }[keyof T] } type Value2Key = ReverseMap<Key2Value> |
游乐场