Ich habe derzeit ein Problem mit tslint und hoffte, dass mir jemand die richtige Richtung weisen kann.
Ich versuche, eine HTTP-GET-Anfrage mit HTTP durch das Angular2-Framework zur Verfügung gestellt zu senden. Bei dieser Anfrage muss ich den Inhaltstyp und das Authentifizierungs-Token des Trägers angeben.
Beispiel für meinen Code:
let headers = new Headers();
let authToken = this._user.getUser().JWT;
headers.append('Content-Type', 'application/json');
headers.append('Authorization', `Bearer ${authToken}`);
let options = new RequestOptions({ headers: headers });
this._http.get('http://' + url '/', options)
.timeout(3000)
.subscribe(
(res) => {
Das funktioniert, allerdings beschwert sich tslint, dass
"TS2345: Argument vom Typ '{ headers: Headers; }' ist nicht zuweisbar an Parameter vom Typ 'RequestOptionsArgs'. Typen der Eigenschaft 'headers' sind nicht kompatibel. Typ 'Headers' ist nicht zuordenbar zu Typ 'Headers'. Es existieren zwei verschiedene Typen mit diesem Namen, die aber nicht miteinander verwandt sind. Die Eigenschaft 'Schlüssel' fehlt im Typ 'Headers'."
Ich danke für die Unterstützung.
Aktualisierung
Seit heute ist @angular/http
veraltet, und @angular/common/http
sollte stattdessen verwendet werden. Der beste Weg, um mit http-Headern zu arbeiten, ist also der Import von import { HttpHeaders } from '@angular/common/http';
(Dokumentation).
Alte Antwort
Der "Headers"-Typ, den Sie importieren sollten, ist "import { Headers } from '@angular/http';`.
Überprüfen Sie Ihre Importe
Sie müssen die Kopfzeilen um aktualisieren:
let headers = {headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded'})};
Aktualisierung für Angular 5
import { RequestOptions } from '@angular/http';
Ich habe dies in den Kommentaren der richtigen Antwort gefunden, also wenn dies jemandem hilft, viel Glück.
Dokumentation: https://angular.io/api/http/RequestOptions