web-dev-qa-db-fra.com

Le contexte «this» du type «void» n'est pas attribuable au «this» de la méthode «Observable <string>» de la méthode

J'obtiens cette erreur dans l'exemple de saisie semi-automatique d'angular. Voici le code:

ngOnInit() {
      this.filteredOptions = this.myControl.valueChanges
          .pipe(
            startWith(''),
            map(val => this.filter(val))
          );
}

L'erreur apparaît sur startWith. Je reçois également une erreur dans le deuxième val. Ça dit:

L'argument de type '{}' n'est pas attribuable au paramètre de type 'chaîne'

La fonction est:

 filter(val: string): string[] {
    return this.options.filter(option =>
      option.toLowerCase().indexOf(val.toLowerCase()) === 0);
  }

CONSEIL: Il y a quelque chose avec des contrôles ou des importations mixtes. Je ne suis pas sûr mais quand je crée un nouveau composant, tout fonctionne bien.

15
Cap Baracudas

Je viens d'avoir le même problème et il s'avère que j'importais la carte et startWith à partir du mauvais répertoire.

import {map, startWith} from "rxjs/operators";

Utilisez-le pour importer à la fois map et startWith et cela devrait fonctionner et compiler.

51
user3605709