typescript 从文字记录类型翻转键和值

rjzwgtxy  于 2023-05-19  发布在  TypeScript
关注(0)|答案(1)|浏览(129)

在typescript中,给定一个记录文字,我如何切换键和值?
即:

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

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

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

这纯粹是在类型上玩游戏--而不是在运行时值上。

hgc7kmma

hgc7kmma1#

这可以通过使用键重Map来完成。

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

相关问题