我有一个抽象的超类,它定义了属性“ proposal”。
export abstract class myBaseClass {
public proposal: Proposal;
}
和扩展它的类
export class mySubClassComponent Component extends myBaseClass{
constructor() {
super();
}
}
我尝试像这样在mySubClassComponent模板中访问myBaseClass的属性“ proposal”:
*ngIf="proposal.position"
但是出现以下错误
TypeError:无法读取未定义的属性“位置”
如何在mySubClassComponent临时模板中访问此属性?
答案 0 :(得分:2)
您正在正确访问它。但是,您已经定义了类型,但实际上,class属性实际上是undefined
。
只需在ngIf中添加一个空检查,就可以完成:
*ngIf="proposal?.position"
如果声明了proposal
,但其值为 undefined ,这将避免意外的错误。
基本上,为了更清楚一点,这是
export abstract class myBaseClass {
public proposal: Proposal;
}
与此相同:
export abstract class myBaseClass {
public proposal: Proposal = undefined;
}
请记住,在打字稿中,在编译代码后声明变量类型无效。如果未定义变量,则无论您在打字稿代码中声明的类型如何,该变量在运行时都将是未定义的。