打字稿错误 - 属性“标题”的类型不兼容

Posted

技术标签:

【中文标题】打字稿错误 - 属性“标题”的类型不兼容【英文标题】:typescript error - Types of property 'headers' are incompatible 【发布时间】:2018-11-18 14:15:47 【问题描述】:

我的 Angular 应用程序有问题。当我尝试拨打 http 时收到打字稿错误。

这是错误输出:

[09:36:28] 打字稿:C:/xampp/htdocs/project x/anonymous-social/src/pages/home/home.ts,行:184 ' headers: HttpHeaders; 类型的参数' 不可分配给“RequestOptionsArgs”类型的参数。 属性“标题”的类型不兼容。类型“HttpHeaders”不可分配给类型“Headers”。 “HttpHeaders”类型中缺少属性“forEach”。

L183: this.http.post(url, JSON.stringify(payload),

L184: headers: new HttpHeaders('Content-Type': 'application/json; charset=utf-8'))

L185: .map((res:Response) =>

我不完全确定它不喜欢什么..

这是我的实际代码:

我正在同时加载 http/common/http

import  HttpHeaders  from "@angular/common/http";
import  Http, Response  from "@angular/http";

然后在构造函数中:

private http: Http,

最后是我的 js:

getCall(url, payload, text) 
  this.http.post(url, JSON.stringify(payload),
  headers: new HttpHeaders('Content-Type': 'application/json; charset=utf-8'))
  .map((res:Response) => 
    console.log(res)
)

任何想法我做错了什么?任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

这是我设置标题的方式,我使用的是Headers,而不是HttpHeaders

import  Http, Response, Headers, RequestOptions  from "@angular/http";

// ...

const headers = new Headers( 'Content-Type': 'application/json; charset=utf-8' );
const options = new RequestOptions( headers: headers );

// ...

【讨论】:

以上是关于打字稿错误 - 属性“标题”的类型不兼容的主要内容,如果未能解决你的问题,请参考以下文章

打字稿错误离子3

解决打字稿错误的最佳方法 - 类型上不存在属性

“键盘”类型上不存在打字稿错误属性“hideKeyboardAccessoryBar”。在 IONIC Moodle 应用程序上

打字稿中的错误:“AngularFireStorageModule”类型上不存在属性 .ref

错误:“HTMLDivElement”类型上不存在属性“值”?打字稿找不到我的div?

如何修复 VSCode 中的“‘CombinedVueInstance’类型上不存在属性 XX”错误? (带有打字稿的Vue)