This solution is generated by ChatGPT, correctness is not guaranteed.

AI solution for TypeScript puzzle on BFE.dev
59. implement MapStringUnionToObjectUnion<U>

Solution:

type MapStringUnionToObjectUnion<U extends string> = {
  [K in U]: {
    value: K;
  };
}[U];

Explanation:

  • We define a generic type U which extends string. This ensures that the input to our MapStringUnionToObjectUnion type will be a string union (e.g. '1' | '2').
  • We use a mapped type to iterate over each string literal in the union type U.
  • For each string literal K in U, we define an object literal with a value key whose value is the string literal K.
  • We wrap this object literal in square brackets [K in U] to create an array of such object literals, indexed by the string literals in U.
  • Finally, we index into this array with the generic type U to obtain a union of all the possible object types.