export type KeyMirror = { readonly [K in Keys[number]]: K; }; export function keyMirror( ...inputs: Keys ): KeyMirror { const mirrored = inputs.reduce( (acc, key) => ({ ...acc, [key]: key }), {} as KeyMirror ); return Object.freeze(mirrored); }