我有一个textarea,我想听听keyup事件。除了Angular2抛出编译时错误(不是运行时)之外,一切正常。
错误:
错误TS2339:属性'目标'类型' {}'。
上不存在
代码:
Observable.fromEvent(this.editor.nativeElement, 'keyup')
.debounceTime(500)
.subscribe(event => this.hasError = !this.isValidJSON(event.target.value));
显然,错误表明event
是一个空对象。
正如我所说,keyup事件和我的应用程序运行良好,但这个错误很烦人,我想摆脱它。如何在编译时中抱怨事件是一个空对象?它从未运行过,在运行期间一切正常。
答案 0 :(得分:1)
您需要转换为适当的类型:
我建议你转发KeyboardEvent
(继承自ES6的Event
),如果你只是想摆脱错误,请使用any
:
subscribe((event: KeyboardEvent) => ...);
或
subscribe((event: any) => ...);
如果您只是使用Event
,可能会自动从Event
导入@angular/router
混合。
[