[英]Js immutable - how to flatten a map to a Set<number>
我有一个Map<number, Shipment>
类型的值 shipments,Shipment 有一个Set<number>
类型的属性packageIds
。 当我有多个货件时,我想 go 通过每个货件,获取他们的packageIds
并使用每个货件中的所有packageIds
制作一个新的平面集:
shipments.flatMap(shipment => shipment.get('packageIds'))
但是,如果我这样做,我会收到 typescript 错误:
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]'.
当遍历 map 时,我怎样才能得到一个平面集?
Map
的 immutablejs flatMap
方法返回另一个Map
。 那不是你想要的。 之前转换为Set
,丢弃Map
键:
shipments.toSet().flatMap(shipment => shipment.get('packageIds'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.