[英]How to access super-class property in sub-class component template? Angular
我有一个抽象的超类,它定义了一个属性“ proposal”。
export abstract class myBaseClass {
public proposal: Proposal;
}
和一个扩展它的类
export class mySubClassComponent Component extends myBaseClass{
constructor() {
super();
}
}
我尝试像这样在mySubClassComponent模板中访问myBaseClass的属性“ proposal”:
*ngIf="proposal.position"
但出现以下错误
TypeError:无法读取未定义的属性“ position”
如何在mySubClassComponent临时模板中访问此属性?
您正在正确访问它。 但是,您已经定义了类型,但是实际上class属性实际上是undefined
。
只需在ngIf中添加一个空检查,就可以完成:
*ngIf="proposal?.position"
如果proposal
被声明但其值未定义,这将避免不希望的错误。
基本上,为了更清楚一点,这是:
export abstract class myBaseClass {
public proposal: Proposal;
}
与此相同:
export abstract class myBaseClass {
public proposal: Proposal = undefined;
}
请记住,在打字稿中,在编译代码后声明变量类型无效。 如果未定义变量,则无论您在打字稿代码中声明的类型如何,该变量在运行时都将是未定义的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.