⬅️ Execute Program Advanced TypeScript Mapped types We can think of Partial as “mapping” the object type’s properties into a new set of properties type User = { email: string }; type UserAggregate = { // mapping over the user properties [K in keyof User]: Array<string> }; const userAggregate: UserAggregate = { email: ['amir@example.com'], }; userAggregate.email; // with two properties, respecting the type type User = { email: string age: number }; type UserAggregate = { [K in keyof User]: Array<User[K]> }; const userAggregate: UserAggregate = { email: ['amir@example.com'], age: [36], }; userAggregate;