打字稿:访问 JQuery children 作为数组

TypeScript: Accessing JQuery children as array

我正在进行从 JavaScript 到 TypeScript 的移植练习,遇到了以下问题。

在原始 JavaScript 代码中我得到:

var children = someJQueryElement.children('div');
var sortedChildren = children.sort(someSortFunction);

在 TypeScript (1.4) 中,所有 jQuery 方法 return JQuery 不是 array,因此不能调用 sort就可以了。

我该如何解决这个问题?

您可以使用Array.slice.apply传入类数组对象并将其转换为适当的数组。

var children = [].slice.apply(someJQueryElement.children('div'));

如果您不使用 jQuery 但想转换任何其他类似数组的对象,例如 arguments,这也是一个有用的做法。

您可以使用 .get()

更改为普通数组
children.get().sort(someSortFunction);

作为一个想法,您是否尝试过使用转换告诉 TypeScript 将其视为数组?

var children = someJQueryElement.children('div');
var sortedChildren = (<Array>children).sort(someSortFunction);

这似乎是一个相当乏味的解决方案,但是,如果您必须在很多地方这样做的话。希望有人有更好的答案。