I'm trying to fetch data from API using interface. Bellow is my temp interface
export interface ITemp {
id: number,
name: string,
age: number
}
And below is my HTTP service, where there is a fn getHomedetails, which calls an API.
import {Injectable} from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { ITemp } from "../interfaces/temp";
import { Observable } from "rxjs/Observable";
import 'rxjs/Rx';
@Injectable()
export class HttpService{
http:any;
baseUrl: String;
constructor(http:HttpClient){
this.http = http;
this.baseUrl = 'some_url';
}
getHomeDetails(): Observable<ITemp> {
return this.http.get<ITemp>(this.baseUrl); //problem is here
//when mouse is pointed on get<ITemp> it shows "Untyped function calls may not accept type arguments"
}
}
An interface doesn't get defined. I don't know what I'm doing wrong. And the above syntax is an angular 4.3X syntax. The editor which I've used are the sublime and visual studio.
This is because you're giving your class-level http
a type of any
:
Change http:any;
to http: HttpClient
A good rule of thumb is to not use any
unless you really really have to.