如何在Angular中隐式声明公共属性?

时间:2019-04-18 14:42:08

标签: angular constructor properties

来自C#,我发现以下语法很奇怪。首先。然后,我非常喜欢它,因为它非常紧凑。无需声明后场或在构造函数中分配值。实际上,Angular的构造函数非常轻巧,几乎是厌食的。

constructor(private hazaa: number) { }
someMethod() { console.log(this.hazaa); }

我想知道是否可以使用相同的语法,但可以声明可公开访问的属性。今天,我在DTO中使用以下方法。

export class BigInfoChunk{
  constructor(someValue: number, anotherValue: number, ...){
      this.infoA = someValue;
      this.InfoB = anotherValue;
      ...
    }
    infoA = 0;
    infoB = 1;
    ...
}

像这样走很方便。

export class BigInfoChunk{
  constructor(public infoA: number, public infoB: number, ...){ }
}

我已经尝试过了,但是很遗憾,它不起作用。什么是实现自动配置的正确语法,但又具有使其可以公开访问的附加功能?

是还是根本不可能?在这种情况下,我很想了解其背后的原因或理由。

1 个答案:

答案 0 :(得分:2)

您的方法是绝对正确的。可能您的测试是错误的吗?

您还可以像这样设置默认(和只读)值:

export class BigInfoChunk{
  constructor(
    public infoA: number = 0,
    public readonly infoB: number = 1,
    /*...*/
  ){ }
}