我有一个通用的排序Map对象(SortedMap),其中存储了实现“ MapItem”接口的所有类型的对象。
我还有一个Fringe类,它实现了此MapItem接口,该接口存储在我的SortedMap中。 SortedMap.list返回其中存储的元素的数组。
在一个仅将“边缘”放入地图中的应用程序中,我正在尝试迭代SortedMap数组并使用边缘进行操作。
尝试构造迭代器,我尝试了以下方法:
for (let fringe of this._activeFringes.list as Fringe) {
//call various methods of Fringe class.
}
这会生成编译器错误。
但是我可以做到这一点而无需抱怨:
for (let fringe of this._activeFringes.list) {
let myFringe = fringe as Fringe;
//call various methods of Fringe class.
}
不确定为什么编译器会抱怨迭代器中的类型转换,而不会抱怨主体内部的类型转换,但是无论如何,是否想知道是否有某种简洁的方法可以做到这一点而无需赋值?
答案 0 :(得分:0)
这里的根本原因
const results = products
.filter(p => !p.featured)
.slice(0, 4)
.map(p => (
<div key={p.id} className="product">
<Product />
</div>
));
您应该改用for (let fringe of this._activeFringes.list as Fringe) {
。