TypeScript jQuery 点击事件类型

7

我有一个Angular TypeScript文件里的代码:

$('.dashboard-table').on('click', 'tbody tr', 
      function(event: JQueryEventObject) {   // changing this to any removes TS error
          const test: Test = <Test>$('.dashboard-table').DataTable().row(this).data();
          self.openTest(test.id, event);
      }
);

openTest(id: number, $event: MouseEvent|JQueryEventObject) {
    let target = $event.srcElement || $event.target as HTMLElement;
    if (target.tagName.toLowerCase() == 'a'
        || $(target).parents('a').length
        || target.tagName.toLowerCase() == 'button'
        || $(target).parents('button').length) {
        return;
    }
    this.router.navigate([this.urls.paths.test(id)]);
}

它抛出了一个TypeScript错误:

error TS2345: Argument of type '"click"' is not assignable to parameter of type 
'PlainObject<false | EventHandler<HTMLElement, 
(this: HTMLElement, event: JQueryEventObject) => vo...'.`.  

我如何让ng serve不截断TypeScript错误消息? 如何重写它以避免失败的TypeScript检查?


不使用 jQuery?你正在使用 Angular。 - Trash Can
我同意。在Angular环境中,除非出于某些遗留原因需要使用jQuery特定功能,否则不应该使用jQuery的click事件。 - kingdaro
@kingdaro 我们正在动态生成一个Datatables.net DataTable - 在这种情况下,我如何使用Angular来实现点击事件? - Denise Mauldin
1个回答

21

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接