打字稿:访问 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);
这似乎是一个相当乏味的解决方案,但是,如果您必须在很多地方这样做的话。希望有人有更好的答案。
我正在进行从 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);
这似乎是一个相当乏味的解决方案,但是,如果您必须在很多地方这样做的话。希望有人有更好的答案。