Парсер github репозитории - PullRequest
0 голосов
/ 09 мая 2019

Используя RxJS, напишите программу для поиска репозитория github по термину. Ошибка: тип Observable<string | Repositories> нельзя назначить типу Observable<string | ResponseModel>. Как исправить эту ошибку?

interface ResponseModel {
  count: number;
  items: Repositories[];
};
interface Repositories {
  title: string;
};
const searchField: HTMLInputElement  = document.querySelector('.search-field') as HTMLInputElement;
const repositories: HTMLUListElement = document.querySelector('.repositories') as HTMLUListElement;
const sequence$ = fromEvent(searchField, 'input');
const clearResult = ():void => {
  if (repositories) {
    repositories.innerHTML = '';
  }
};
const sequence2$: Observable<string | ResponseModel> = sequence$
  .pipe(
    debounceTime(300),
    distinctUntilChanged(),
    tap(clearResult),
    switchMap((event: KeyboardEvent) => request(event)
      .pipe(catchError(error => of('Error: ${'Not found'}')))
    )
  );
sequence2$.subscribe(result => showRepo(result));
function request(event: KeyboardEvent): Observable<Repositories> {
  const url: string = `${'https://api.github.com/search/repositories'}?q=${(event.target as  HTMLInputElement).value}`;
    return from(fetch(url).then(res => res.json()));
};
function showRepo(res: ResponseModel) {...}
}
    <input class="search-field" type="text">
    <ul class="repositories"></ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...