我正在进行从JavaScript到TypeScript的移植练习,并遇到了以下问题。
在最初的JavaScript代码中我得到了:
var children = someJQueryElement.children('div');
var sortedChildren = children.sort(someSortFunction);
在TypeScript(1.4)中,所有jQuery方法都返回JQuery
,这不是array
,因此无法调用sort
。
我该如何解决这个问题?
答案 0 :(得分:2)
作为一个想法,您是否尝试告诉TypeScript使用强制转换将其视为数组?
var children = someJQueryElement.children('div');
var sortedChildren = (<Array>children).sort(someSortFunction);
这似乎是一个相当繁琐的解决方案,但是,如果你必须在很多地方这样做。希望有人有更好的答案。
答案 1 :(得分:1)
您可以使用Array.slice.apply
传入类似数组的对象并将其转换为正确的数组。
var children = [].slice.apply(someJQueryElement.children('div'));
如果您不使用jQuery但想要转换任何其他类似数组的对象(例如arguments
),这也是一种有用的做法。
答案 2 :(得分:1)
您可以使用.get()
children.get().sort(someSortFunction);