typescript - byt plats på nycklar och värden från en literal rekordtyp
I TypeScript, givet en postliteral, hur byter man nycklarna med värdena?
Det är:
type Foo = { x: "a", y: "b", z: "c" };
Jag önskar kunna skriva type Flip<X> så att:
type Bar = Flip<Foo>; // should be { a: "x", b: "y", c: "z" };
Detta är enbart ett spel med typer - inte med körningens värden.
Svar #1
Detta kan göras genom användning av tangentomkartning.
type Flip<T extends Record<any,any>> = {
[K in keyof T as T[K]]: K
}
