我正在尝试使用具有以下定义的方法(在Angular中):
request(method: string, url: string, options?: {
body?: any;
headers?: HttpHeaders;
params?: HttpParams;
observe?: HttpObserve;
reportProgress?: boolean;
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
withCredentials?: boolean;
}): Observable<any>;
我的代码如下所示:
let options = {
headers: headers,
content: content,
responseType: 'json'
};
http.request(method, url, options)
但是我收到了这个错误:
错误TS2345:类型'{headers:HttpHeaders;内容:字符串; responseType:string; }'不能赋值给'{body?:any;标题?:HttpHeaders; params?:HttpParams;观察?:HttpObserve; reportProgress:?...“。属性“responseType”的类型不兼容。类型'string'不能分配给''text'|类型“json”| “arraybuffer”| “斑点”。”
由于reponseType没有像“类型ResponseType ='arraybuffer'| ... ”这样的声明类型,我如何“将”文字“json”“强制转换”为有效值这个性质?
答案 0 :(得分:6)
您可以将字符串强制转换为字符串文字类型:
let options = {
headers: headers,
content: content,
responseType: 'json' as 'json'
};