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

如何在Angular中隐式声明公共属性?,angular,constructor,properties,Angular,Constructor,Properties,对于C#,我发现以下语法很奇怪。一开始然后,我完全喜欢它,因为它非常紧凑。无需声明后台字段,也无需在构造函数中赋值。事实上,Angular的构造器非常轻,几乎是厌食症 constructor(private hazaa: number) { } someMethod() { console.log(this.hazaa); } 我想知道除了声明可公开访问的属性外,是否可以使用相同的语法。今天,我对DTO使用以下方法 export class BigInfoChunk{ constructo

对于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, ...){ }
}
我试过了,但遗憾的是,它不起作用。实现自动属性化的正确语法是什么,但具有公开访问的附加功能


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

你的说法绝对正确。也许你的考试错了

您还可以设置默认(和只读)值,如下所示:

导出类BigInfoChunk{
建造师(
公共信息A:number=0,
公共只读信息b:number=1,
/*...*/
){ }
}

你的说法绝对正确。也许你的考试错了

您还可以设置默认(和只读)值,如下所示:

导出类BigInfoChunk{
建造师(
公共信息A:number=0,
公共只读信息b:number=1,
/*...*/
){ }
}

给我几分钟,伙计。这正是我测试的,它没有飞起来。(或者,更确切地说,这正是我认为我测试过的,哈哈。)马上回来。确认一下,它正在编译,而且似乎有效。我想我一直坚持的是,我通常使用可为空的属性,然后像这样保护空:构造函数(public x?:number){this.x=x | |-1;},当我添加默认值时,它没有带问号:构造函数(public x?:number=-1){}。剩下的是我的困惑,呵呵。不知道你已经知道了,但是:问号是一个可选论点的指标。如果使用
infoA=0
提供默认值,则该属性是隐式可选的。如果没有默认值且带有问号,参数将不会为
null
它将是
未定义的
,解析为
false
。你可以用这种行为来耍个小把戏。跳过争论。例如:
newbiginfochunk(未定义,3)
。第一个参数将采用默认值;)另一个注意事项:此行为不限于角度。这是一个打字脚本功能。你可以使用独立于角度的打字脚本。即使在node.js的服务器端,我也知道问号的作用(在C#中,它是可为null的类型更改,所以如果还没有完全更改的话,也有点类似)。所以你的暗示是正确的。谢谢你。在我们讨论语言细节时,我有一个后续问题要问。您会选择以下语法之一,还是因为技术原因而选择其中一种?(a) 构造函数(公共x=1){}或(b)构造函数(公共x:number=1){}。我完全支持(a),因为它是隐式类型的,因此更短。但我不想因为它是编译的,就陷入任何东西都有的境地。给我几分钟,伙计。这正是我测试的,它没有飞起来。(或者,更确切地说,这正是我认为我测试过的,哈哈。)马上回来。确认一下,它正在编译,而且似乎有效。我想我一直坚持的是,我通常使用可为空的属性,然后像这样保护空:构造函数(public x?:number){this.x=x | |-1;},当我添加默认值时,它没有带问号:构造函数(public x?:number=-1){}。剩下的是我的困惑,呵呵。不知道你已经知道了,但是:问号是一个可选论点的指标。如果使用
infoA=0
提供默认值,则该属性是隐式可选的。如果没有默认值且带有问号,参数将不会为
null
它将是
未定义的
,解析为
false
。你可以用这种行为来耍个小把戏。跳过争论。例如:
newbiginfochunk(未定义,3)
。第一个参数将采用默认值;)另一个注意事项:此行为不限于角度。这是一个打字脚本功能。你可以使用独立于角度的打字脚本。即使在node.js的服务器端,我也知道问号的作用(在C#中,它是可为null的类型更改,所以如果还没有完全更改的话,也有点类似)。所以你的暗示是正确的。谢谢你。在我们讨论语言细节时,我有一个后续问题要问。您会选择以下语法之一,还是因为技术原因而选择其中一种?(a) 构造函数(公共x=1){}或(b)构造函数(公共x:number=1){}。我完全支持(a),因为它是隐式类型的,因此更短。但我不想仅仅因为它碰巧是编译的,就陷入任何东西都有的情况。