我从Angular页面复制了一些代码,可视化代码显示错误:
此行的错误:
map((e: KeyboardEvent) => e.target.value),
错误
Property 'value' does not exist on type 'EventTarget'.
Angular website代码:
import { fromEvent } from 'rxjs';
import { ajax } from 'rxjs/ajax';
import { map, filter, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';
const searchBox = document.getElementById('search-box');
const typeahead = fromEvent(searchBox, 'input').pipe(
map((e: KeyboardEvent) => e.target.value),
filter(text => text.length > 2),
debounceTime(10),
distinctUntilChanged(),
switchMap(() => ajax('/api/endpoint'))
);
typeahead.subscribe(data => {
// Handle the data from the API
});
2条答案
按热度按时间9udxz4iz1#
因为Typescript不能推断事件类型。你需要显式地写出你的目标HTMLElement的类型。例如,如果它的类型是
HTMLInputElement
,那么你可以写下面一行:这将解决你的问题。
drkbr07n2#
尝试使用这种类型的输入,而不是KeyboardEvent使用ChangeEvent: