Cette propriété fromEvent n'existe pas sur le type " typeof Observables Angulaire 6

J'ai un problème en essayant de créer à son tour la keyup événements dans une observable flux.

Je suis à la suite de la Ng-livre version 6.
Je suis coincé dans un exemple qui fait une recherche de la vidéo de YouTube que vous tapez. Lorsque la recherche de retours, nous allons voir une liste de miniatures de vidéo résultats, avec une description et un lien vers la vidéo.

Donc, pour cela, nous utilisons un fait observable.fromEvent: https://github.com/NiLinli/ng-book2-angular-6-r68-code-samples/blob/master/http/src/app/you-tube-search/search-box.component.ts

Dans RxJS 5, il fournit un moyen d'écouter les événements sur un élément à l'aide de Rx.Observables.fromEvent.

ngOnInit(): void {
//convert the `keyup` event into an observable stream
Observable.fromEvent(this.el.nativeElement, 'keyup')

Mais j'obtiens cette erreur:

ERREUR dans src/app/search-box/boîte de recherche.composante.ts(42,13): erreur
TS2339: la Propriété 'fromEvent" n'existe pas sur le type " typeof
Observables'.

Je RxJS 6 l'importation pour les Observables et fromEvent est comme ceci:

import { Observable, fromEvent } from 'rxjs';

C'est mon code pour le RxJs5 version Angulaire 6: (il ne marche pas)

Observable.fromEvent(this.el.nativeElement, 'keyup')
.map((e: any) => e.target.value) //extract the value of the input 
.filter((text: string) => text.length > 1) //filter out if empty 
.debounceTime(250) //only once every 250ms 
.do(() => this.loading.emit(true)) //enable loading
      //search, discarding old events if new input comes in
.map((query: string) => this.youtube.search(query)) 
.switch()

C'est ma essayer avec RxJs 6 et angulaire 6 (il est mis à jour selon la dernière réponse)

Je suis en train d'utiliser le tuyau de la syntaxe:

    const obs = fromEvent(this.el.nativeElement, 'keyup')
        .pipe (
            .map((e:any) => e.target.value) //extract the value of the input

            //.filter((text:string) => text.length > 1) //filter out if empty

            .debounceTime(250) //only search after 250 ms

            .tap(() => this.loading.emit(true)) //Enable loading
            //search, call the search service

            .map((query:string) => this.youtube.search(query)) 
            //discard old events if new input comes in

            .switchAll()
            //act on the return of the search
            )   

Mais j'ai cette erreur:

Propriété "carte" n'existent pas sur le type d'Observable{<>}

Et dans la ligne de commande, après exécution ng servir:

ERREUR dans la boîte de recherche/de la boîte de recherche.composante.ts(40,4): erreur TS1135: Argument > expression attendue.
de la boîte de recherche/de la boîte de recherche.composante.ts(54,4): erreur TS1128: Déclaration ou d' > déclaration prévu.

Mais, il ne fonctionne pas... Donc, comment dois-je rédiger ma pipe sintax?

Comment mes recherches:

  1. La documentation de la Ng-livre est obsolète.
  2. La documentation de la angulaire guide est différent.
  3. - Je ouvrir un Question sur GitHub, mais ils me renvoyer ici
InformationsquelleAutor ValRob | 2018-05-28