logoProsperBao

Flip

2022-04-22 01

题目来源(type-challenges)

问题

实现一个类型的 just-flip-object

Flip<{ a: "x", b: "y", c: "z" }>; // {x: 'a', y: 'b', z: 'c'}
Flip<{ a: 1, b: 2, c: 3 }>; // {1: 'a', 2: 'b', 3: 'c'}
flip<{ a: false, b: true }>; // {false: 'a', true: 'b'}

解答

type Flip<T> = {
  [K in keyof T as 
    T[K] extends string | number | symbol 
    ? T[K] 
    : T[K] extends boolean 
      ? `${T[K]}` .
      : never]: K
}

拆分

  1. Flip Arguments 类似