我正在将一些 .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/