问题描述
我正在 Angular 中尝试一些 RxJS 函数,并从教程 (link) 中复制了一些代码。我的项目配置为“严格”模式。 该应用程序只是在控制台中记录点击的坐标(我做了一个 Stackblitz:link)
在本地和 Stackblitz 上都应用程序在本地运行,但我的 IDE 在本地显示错误。在 AppComponent 的第 25 行,在 subscribe
中,onClick
带有下划线,我得到“No overload matches this call
”。问题似乎与第 12 行的类型定义 MouseEvent
有关。如果我将其更改为 any
,错误就会消失。
我的假设是:
我的问题:
解决方法
你可以这样做:
const eventListener = <K extends keyof DocumentEventMap>(type: K) =>
bindCallback<K,DocumentEventMap[K]>(document.addEventListener)(type);
Stackblitz:https://stackblitz.com/edit/angular-ivy-pzxguu?file=src/app/app.component.ts
您也可以改用 rxjs 中的 fromEvent
:
import { fromEvent } from 'rxjs';
...
fromEvent(document,'click').subscribe(...);