type Readers = { [K in keyof T]: () => T[K] }; type Lot = { code: string; packets: number }; const readers: Readers = { code: () => "RD-8", packets: () => 12 }; console.log(readers.code(), readers.packets());