Tengo envíos de valor que son del tipo Map<number, Shipment> , Shipment tiene una propiedad packageIds que es del tipo Set<number> . Cuando tengo varios envíos, me gustaría revisar cada envío, obtener sus packageIds de paquete y crear un nuevo conjunto plano con todos los ID de packageIds de cada envío:
shipments.flatMap(shipment => shipment.get('packageIds'))Pero, si hago eso, me sale un error mecanografiado:
TS2322: Type 'Set<number>' is not assignable to type 'Iterable<[unknown, unknown]>'. The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. Type 'IteratorResult<number, any>' is not assignable to type 'IteratorResult<[unknown, unknown], any>'. Type 'IteratorYieldResult<number>' is not assignable to type 'IteratorResult<[unknown, unknown], any>'. Type 'IteratorYieldResult<number>' is not assignable to type 'IteratorYieldResult<[unknown, unknown]>'. Type 'number' is not assignable to type '[unknown, unknown]'.¿Cómo puedo obtener un conjunto plano al iterar sobre un mapa?
El método immutablejs flatMap de Map s devuelve otro Map . Eso no es lo que quieres. Convertir a Set antes, descartando las claves del Map :
shipments.toSet().flatMap(shipment => shipment.get('packageIds'))