Angular http post 方法给出打字稿错误
Angular http post method gives typescript error
我正在使用 Angular 5. 我通过服务与 API 交互。我有一个方法想用于 posting 到 API。问题是,如果我将 post 方法的类型指定给 "Candidate" 对象,我会收到以下警告:
src/app/candidates.service.ts(17,12): error TS2558: Expected 0 type arguments, but got 1.
我的函数代码如下:
addCandidate(candidate: Candidate): Observable<Candidate> {
return this.http.post<Candidate>(this.apiUrl, candidate, httpOptions);}
我想我在这里使用的类型不正确,但我不确定。
http post 方法 return 是候选人吗?如果不只是更改为 Observable
而不是 Observable<Candidate>
我建议删除 <Candidate>
,因为在 post 方法中,它只关心您向它发送 json 数据。您也已经在 addCandidate(candidate: Candidate)
方法参数声明中输入了它。
这可能是因为您使用的是旧的、已弃用的 Http
class 而不是 HttpClient
。
import {Http} from '@angular/http'; //old, deprecated client. Does not support generic types
import {HttpClient} from '@angular/common/http'; //new client
在您服务的构造函数中将 private http: Http
替换为 private http: HttpClient
,并像这样导入 HttpClient
import {HttpClient} from '@angular/common/http`
不要忘记在 AppModule 模块中导入 HttpClientModule
//app.module.ts
import { HttpClientModule } from '@angular/common/http';
....
imports: [HttpClientModule]
我正在使用 Angular 5. 我通过服务与 API 交互。我有一个方法想用于 posting 到 API。问题是,如果我将 post 方法的类型指定给 "Candidate" 对象,我会收到以下警告:
src/app/candidates.service.ts(17,12): error TS2558: Expected 0 type arguments, but got 1.
我的函数代码如下:
addCandidate(candidate: Candidate): Observable<Candidate> {
return this.http.post<Candidate>(this.apiUrl, candidate, httpOptions);}
我想我在这里使用的类型不正确,但我不确定。
http post 方法 return 是候选人吗?如果不只是更改为 Observable
而不是 Observable<Candidate>
我建议删除 <Candidate>
,因为在 post 方法中,它只关心您向它发送 json 数据。您也已经在 addCandidate(candidate: Candidate)
方法参数声明中输入了它。
这可能是因为您使用的是旧的、已弃用的 Http
class 而不是 HttpClient
。
import {Http} from '@angular/http'; //old, deprecated client. Does not support generic types
import {HttpClient} from '@angular/common/http'; //new client
在您服务的构造函数中将 private http: Http
替换为 private http: HttpClient
,并像这样导入 HttpClient
import {HttpClient} from '@angular/common/http`
不要忘记在 AppModule 模块中导入 HttpClientModule
//app.module.ts
import { HttpClientModule } from '@angular/common/http';
....
imports: [HttpClientModule]