【发布时间】:2019-11-23 05:50:24
【问题描述】:
我正在学习typescript。我检查了this 和this。我尝试了许多其他解决方案。我有一个变量incomingArticleObject,该变量的类型应该是Object,并且Object 应该有一个属性content,其中content 的类型是String。这是我写的:
export class OptionsPanelComponent implements OnInit {
incomingArticleObject : Object = {
content: String };
constructor(...) { }
ngOnInit() {
this.incomingArticleObject = this._articleService.getClickedArticle();
document.querySelector('#mydiv').innerHTML=this.incomingArticleObject.content; <=== ERROR
}
}
但我在ngOnInit 中的那一行收到此错误:
“对象”类型上不存在属性“内容”。
我也尝试创建一个interface,然后像这样分配值:
import { ... } from '@angular/core';
import ...
export interface MyObject {}
@Component({
...
})
export class OptionsPanelComponent implements OnInit {
incomingArticleObject : MyObject = {
content: String };
constructor(...) { }
ngOnInit() {
this.incomingArticleObject = this._articleService.getClickedArticle();
document.querySelector('#data-container').innerHTML=this.incomingArticleObject.content;
}
}
但我仍然遇到同样的错误,vs code 中有很多带红色下划线的代码。请纠正我。
【问题讨论】:
-
将接口命名为
Object以外的名称。例如:export interface IArticle {...}。然后incomingArticleObject : IArticle = {...} -
@adiga。我试过。我也编辑了我的问题中的代码。它不工作。无论如何,我感谢您的帮助。
-
什么不起作用?首先,您将对象设置为
{ content: String }。这是一个对象字面量,而不是类型定义。String是一个全局对象。因此,当您将其分配给innerHTML时,您可能会遇到错误。其次,您可能在{ content: content }中遇到错误,因为范围内没有content标识符。请发布确切的错误以创建minimal reproducible example -
在第二个示例中,您将 content 属性设置为名为 content 的变量。那个变量是从哪里来的?
-
我做了一些改变。 Instaed 全局
Object现在我使用的是用户定义的MyObject。但我仍然遇到同样的错误。
标签: angular typescript object