I want to copy an object and map its properties in a type safe manner. I can describe the resulting type in TypeScript but I\'m unable to achieve mapping the properties without