我为我的TypeScript应用程序启用了strictNullChecks
。我使用的是RxJS 5,它是用TypeScript编写的。但是,它尚未启用strictNullChecks
。
因此,当我执行以下操作时:
Observable.fromEvent(document.getElementById('button'), 'click')
我收到以下错误:
Error TS2345: Argument of type 'HTMLElement | null' is not assignable to parameter of type 'EventTargetLike'.
Type 'null' is not assignable to type 'EventTargetLike'.
换句话说,当RxJS says第一个参数应该是EventTargetLike
时,它实际上意味着它应该大致是EventTargetLike | null
- 就是这样,当它使用他们的TypeScript配置。
有没有办法让TypeScript在可用时使用库的配置(即不完全关闭类型检查,如this question中所述,并且不适用于非默认库)。
答案 0 :(得分:1)
它实际意味着它应该大致是一个EventTargetLike |空
可能不是。它实际上想要一个目标,你不应该传递可能为null的东西。快速修复:
let btn = document.getElementById('button');
Observable.fromEvent(btn!, 'click');
你告诉编译器!
我知道btn不是null 。或者,您可以进行检查以使编译器满意:
let btn = document.getElementById('button');
if (btn != null){
Observable.fromEvent(btn, 'click');
}