import { Headers, Http } from '@angular/http';
@Injectable()
export class PublisherService{
private publishersUrl = 'app/publisher';
constructor(private http: Http) { }
getPublishers(): Promise<Publisher[]>{
return this.http.get(this.publishersUrl)
.toPromise()
.then(response => response.json().data)
.catch(this.handleError);
}
}
このエラーが発生しています:
プロパティ「toPromise」はタイプ「Observable」に存在しません。
次のような演算子を追加する必要があります。
import 'rxjs/add/operator/toPromise';
これは、使用するすべてのrxjsオペレーターに必要です。
次のように、「@ angular/http」からのインポート文に「Response」を追加してみてください。
import {Http, Headers, Response} from '@angular/http';
また、@ Injectableデコレータを使用しても、angularコアからIngectableをインポートしないことに気付きました。
import { Injectable } from '@angular/core';
最初にこのインポートを使用します
import {Observable} from "rxjs/Rx";
これにつまずく人(それは私にとってトップのグーグルリンクでした)については、リンクされた答えの一つから来る以下を参照してください
https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507
それが言うように、Visual Studio 2015では、TypeScriptのバージョンを更新することでこれを修正できます
https://www.Microsoft.com/en-us/download/details.aspx?id=4859