TypeScript: Turn an Array of Values into a Type Union
   I found the answer I was looking for here:   https://dev.to/shakyshane/2-ways-to-create-a-union-from-an-array-in-typescript-1kd6     I wasn't sure that it would be possible. In fact, it turns out that the   solution is far more impressive than I expected.      What follows cuts to the core part of the article that I need solved my   particular problem.   Problem     I want to have an object type with specific keys and I want a static array of   those keys, but I don't want to have the same list of keys written out twice   in case I mistakenly make them differ in the future  type K = "a" | "b" | "c"; type O = Record<K, V>; const keys: K[] = ["a","b","c"];             I want to be sure that 'keys' contains every member of type 'K' exactly once     and vice-versa. I want to use 'keys' to build an object of type 'O', so I     can't just rely on using 'Object.keys' on an ...