type TypeMapping = { boolean: boolean; string: string; number: number; }; type OptionsToType> = { [K in T[number]['name']]: TypeMapping[Extract['type']]; }; declare const options: ({ name: "foo"; type: "boolean"; } | { name: "bar"; type: "string"; } | { name: "baz"; type: "number"; })[]; export type Opts = OptionsToType; export {};