typescript - 翻转文字记录类型中的键和值

标签 typescript type-level-computation

在 typescript 中,给定一个记录文字,如何用值切换键?

即:

type Foo = { x: "a", y: "b", z: "c" };

我希望能够写type Flip<X>这样:

type Bar = Flip<Foo>; // should be { a: "x", b: "y", c: "z" };

这纯粹是类型上的游戏——而不是运行时值。

最佳答案

这可以通过使用 key remapping 来完成.

type Flip<T extends Record<any,any>> = {
     [K in keyof T as T[K]]: K 
}

关于typescript - 翻转文字记录类型中的键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76277672/

相关文章:

具有多部分形式的 Angular 6 后请求不包含已发布对象的附加文件

scala - Shapeless Witness 以及它如何给出实际的单例类型

haskell - 如果没有匹配的封闭类型族实例,有没有办法获得编译时错误?

scala - 解释 Scala 类型级编程中使用的 `LowPriorityImplicits` 模式

angular - 为什么 Angular 单元测试没有测试此服务中的订阅内容?

reactjs - 更好的语法来更新 redux 上的嵌套对象

javascript - 强制输入值( Angular )

haskell - 类型级列表的行多态相等性

haskell - Haskell 和 Idris : Reflection of Runtime/Compiletime in the type universes 之间的区别

angular - Google reCaptcha 在 TypeScript 中重置