Angular 2 beta.17 で Property 'map' does not exist on type 'Observable' エラーを解決する方法
リオデジャネイロの最高のビーチ
コパカバーナビーチ
リオデジャネイロで最も有名なビーチです。2kmにも及ぶ白い砂浜と青い海が特徴です。波が穏やかで、海水浴やサーフィンに最適です。ビーチ沿にはたくさんのレストランやカフェがあり、昼夜問わず賑わっています。
イパネマビーチ
コパカバーナビーチの隣にあるビーチです。コパカバーナビーチよりも落ち着いた雰囲気で、高級住宅街に面しています。波が穏やかで、海水浴や散歩に最適です。
イパネマビーチのさらに隣にあるビーチです。高級住宅街に面しており、落ち着いた雰囲気です。波が穏やかで、海水浴や散歩に最適です。
プラヤ・ヴェルメリャ
ウニドス・ダ・ヴィラ地区にあるビーチです。赤い岩に囲まれた美しいビーチで、静かな環境でリラックスしたい人におすすめです。
プラヤ・ド・フォルテ
ウルカ地区にあるビーチです。波が強く、サーフィンに最適です。また、パラグライダーを楽しむこともできます。
プラヤ・ダ・ジュリア
イパネマビーチから徒歩でアクセスできるビーチです。波が穏やかで、海水浴やカヌーに最適です。
プラヤ・デ・サン・コンラード
サン・コンラード地区にあるビーチです。飛行機が頭上を飛ぶことで有名です。波が穏やかで、海水浴や散歩に最適です。
プラヤ・デ・ボタフォゴ
ボタフォゴ地区にあるビーチです。コパカバーナビーチやイパネマビーチよりも混雑が少なく、ゆっくりと過ごしたい人におすすめです。
フラメンゴ地区にあるビーチです。小さな島があり、景色が美しいビーチです。波が穏やかで、海水浴や散歩に最適です。
プラヤ・ダ・ウカ
注意事項
- 上記のビーチは、いずれもリオデジャネイロ市内にあるビーチです。
- ビーチに行く際は、貴重品は肌身離さず持ち歩き、安全に注意してください。
- ビーチによっては、波が強かったり、水質が悪かったりするところもありますので、事前に情報を確認することをおすすめします。
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class MyService {
constructor(private http: Http) {}
getData() {
return this.http.get('https://api.github.com/users/angular')
.map(response => response.json());
}
}
解説
import 'rxjs/add/operator/map'
という行は、map
オペレータをインポートします。getData()
メソッドは、https://api.github.com/users/angular
に HTTP GET リクエストを送信します。- リクエストが成功すると、
response
オブジェクトが返されます。 map
オペレータは、response
オブジェクトを JSON に変換します。
エラーメッセージ
上記のコードを実行すると、次のエラーメッセージが表示されます。
Property 'map' does not exist on type 'Observable<Response>'.
これは、map
オペレータが Observable
オブジェクトに存在しないためです。
解決方法
このエラーを解決するには、import 'rxjs/add/operator/map'
という行を追加します。
この行を追加すると、map
オペレータがインポートされ、Observable
オブジェクトで使用できるようになります。
このサンプルコードは、Angular 2 beta.17 で map
オペレータを使用する方法を示しています。map
オペレータは、Observable
オブジェクトを変換するために使用できます。
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
@Injectable()
export class MyService {
constructor(private http: Http) {}
getData() {
return this.http.get('https://api.github.com/users/angular')
.subscribe(response => {
const data = response.json();
// ...
});
}
}
この方法では、subscribe()
メソッドを使用して、HTTP リクエストの応答を処理します。
subscribe()
メソッドは、次の 3 つの引数を受け取ります。
next
: リクエストが成功したときに呼び出される関数です。
上記のコードでは、next
関数を使用して、response
オブジェクトを JSON に変換しています。
typescript angular rxjs