Разработчики, плохо знакомые с Angular, могут не знать, что им следует использовать интерфейс для приведения вызова HttpClient get для доступа к данным, возвращаемым следующим образом:
interface ResponseData {
someNumber: number;
anotherNumber: number;
myString: string;
}
И тогда ваш вызов выглядит так:
dailyForecast() {
const URL = 'http://samples.openweathermap.org/data/2.5/history/city?q=Warren,OH&appid=b6907d289e10d714a6e88b30761fae22';
return this._http.get<ResponseData>(URL)
.pipe(map(data => {
console.log(data);
return data;
})
);
}
Это заставит вызов get возвращать данные того же типа, что и интерфейс, поэтому, когда вы делаете вызов в клиенте-потребителе, вы можете получить доступ к данным следующим образом:
this.weatherService.dailyForecast()
.subscribe((resultData: ResponseData) => {
console.log(resultData);
this.createWeatherChart(resultData);
});