给定一个类型的对象:
type Key2Value = {
foo: "bar"
voo: "doo"
}
Run Code Online (Sandbox Code Playgroud)
假设该类型的值始终是字符串类型,那么如何构造一个ReverseMap<T>将键值对反向映射到值键对的实用程序类型?
type Value2Key = ReverseMap<Key2Value>
// yields:
type Value2Key = {
bar: "foo"
doo: "voo"
}
Run Code Online (Sandbox Code Playgroud)
hac*_*ape 10
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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4499 次 |
| 最近记录: |