【发布时间】:2019-04-18 13:36:15
【问题描述】:
问题是关于如何使用对象类型发送标头,而不是HTTPClient声明中提供的HttpHeaders。
在使用 Angular HttpClient 时,我想用 Object 传递标头,我不明白如何定义 [header: string]: string | 类型的对象string[]; 请帮助我理解这个对象声明。同样,我也面临 HttpParams。我的代码方法如下。
getLoggedInUser(requestHeaderParam: GetLoggedInUserHeaderRequestParam): Observable<LoggedInUserResponse> {
return this.http.get<LoggedInUserResponse>(`${environment.apiBaseUrl}/auth/loggedInUser`,
{ headers: requestHeaderParam });
}
我在 VS 代码中收到的错误消息如下
[ts] 类型参数 '{ headers: GetLoggedInUserHeaderRequestParam; }' 不能分配给类型为 '{ headers?: HttpHeaders | { [标题:字符串]:字符串 |细绳[]; };观察?:“身体”;参数?: H T...'。属性“标题”的类型不兼容。 类型“GetLoggedInUserHeaderRequestParam”不可分配给类型“HttpHeaders | { [标题:字符串]:字符串 |细绳[]; }'。 类型 'GetLoggedInUserHeaderRequestParam' 不可分配给类型 '{ [header: string]: string |细绳[]; }'。 “GetLoggedInUserHeaderRequestParam”类型中缺少索引签名。
请求参数类型如下
export interface GetLoggedInUserHeaderRequestParam {
uid: string;
PSID?: string;
}
HttpClient 声明如下。
HttpClient.get(url: string, options: {
headers?: HttpHeaders | {
[header: string]: string | string[];
};
observe?: "body";
params?: HttpParams | {
[param: string]: string | string[];
};
reportProgress?: boolean;
responseType: "arraybuffer";
withCredentials?: boolean;
}): Observable<ArrayBuffer>
请帮忙!!!
注意:我的问题不是如何使用 HttpHeaders,我知道如何使用 HttpHeaders,我的问题是如何直接使用 Object,如其声明类型之一中所述{ [标题:字符串]:字符串 |细绳[]; } 在 HttpClient 中
【问题讨论】:
标签: angular typescript httpclient