我将javascript代码更改为应用程序中的typescript并注意以下问题:
使用javascript代码:
var x= $.makeArray($(comparisonObjects)
.map(function (i, o) {
if (o.Id !== IdtoRemove) {
return o;
}
return null;
}));
这不适用于打字稿,因为" o"被声称是"元素"的对象。类型,即使它实际上是一个包含Id的对象。
请注意,我不希望访问元素' id属性。 ComparisonObjects已经是一个业务对象数组,它们有自己的Id属性。
所以实际问题是我被迫将我的对象视为一个元素,而不允许我访问该对象。
在打字稿中处理这个问题的正确方法是什么?
答案 0 :(得分:2)
如果您正在使用普通数组,则不需要创建jQuery对象:
var x = comparisonObjects.filter(function(object) {
return object.Id !== IdToRemove;
});
那将为您提供一个新数组,其中只包含满足您条件的对象。数组的本地.map()
函数不会像jQuery .map()
那样关注返回值。