繁体   English   中英

如何在子类组件模板中访问超类属性? 角度的

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM