动态创建和分配对象属性打字稿
Posted
技术标签:
【中文标题】动态创建和分配对象属性打字稿【英文标题】:Create and assign a object property dynamically typescript 【发布时间】:2020-08-04 16:41:06 【问题描述】:我有一个这样声明的接口,
export interface OurHistory
ourHistory?: object;
step1?:object;
step2?:object;
在课堂上,我有
export class HistoryComponent implements OnInit, OnDestroy
myHistory:OurHistory;
let ourHistory = [];
ourHistory = this.allHistory.fields['ourHistory'];
this.myHistory.ourHistory = ourHistory[0];
我收到一条错误消息,提示无法设置未定义的属性“ourHistory”
【问题讨论】:
因为 myHistory 变量未初始化。默认情况下它是未定义的。 要么从实现接口的类中实例化 myHistory 变量,即 myHistory = new Hisory(),要么使用类似 myHistory: OurHistory = ; 【参考方案1】:发生这种情况是因为在您的倒数第二行:this.myHistory
是 undefined
。您正在尝试访问undefined
的属性ourHistory
,这是编译器不喜欢的。
您需要实例化该属性,就像您问题的 cmets 中提到的那样。
一种方法,可以这样做:
export class HistoryComponent implements OnInit, OnDestroy
myHistory: OurHistory;
let ourHistory = [];
ourHistory = this.allHistory.fields['ourHistory'];
this.myHistory = ourHistory: ourHistory[0];
这样,我们用一个新对象实例化属性myHistory
:
ourHistory: someValue
【讨论】:
以上是关于动态创建和分配对象属性打字稿的主要内容,如果未能解决你的问题,请参考以下文章