javascript - 将 jQuery .map() 方法调用转换为 TypeScript

标签 javascript jquery typescript2.0

我正在将一些 .js 文件重构为 Typescript。

引用https://github.com/DefinitelyTyped/DefinitelyTyped/tree/types-2.0/jquery解析 jQuery 方法。

源代码有几个与此类似的代码实例:

$("#id").map( (ev)=> {
  return $(ev.target).val();
}) 

用法表明,map 需要一个回调,其中 ev 是一个事件(带有 target 属性),但是 jQuery.d.ts 定义该方法如下:

map(callback: (index: number, domElement: Element) => any): JQuery;

结果 Typescript 编译器会报错,说

'property target does not exist on type number'

相关的jQuery版本是1.7.2

编辑

根据@FunStuff的回答,我将代码修改如下:

.map( (i, el)=> {
  return $(el).val();
})

Resharper 喜欢哪个。我仍然对 Vanilla JS 中的方法签名如何解析感到困惑?

最佳答案

因为第一个参数是索引,它的类型是数字

$("#id").map((index, element) => {
  console.log(element);
});

map(callback: (index: number, domElement: Element) => any): JQuery;

注意第二个参数是当前 DOM 元素而不是事件。

现在应该可以工作了。

关于javascript - 将 jQuery .map() 方法调用转换为 TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41223175/

相关文章:

javascript - jenkins 不接受来自 casperjs 的 xunit xml 日志

Javascript 正则表达式无法正常工作

javascript - 使用类验证器中的 @MinDate 会导致 TypeError : Cannot read property 'getTime' of undefined?

typescript - 在没有 Angular 的情况下理解 TypeScript 和 SystemJS

javascript - 如何在三个 JS 中为对象添加贴花

javascript - ~~ 对比 parseInt?

javascript - jQuery 显示与所选下拉值具有相同类的 div

jQuery、.empty() 和内存

typescript - 是否可以扩展可能为 Null 的类型?

javascript - 当 div 离开屏幕的一侧时,动态地在容器 div 中居中? (水平导航布局)