我正在构建一个Angular4项目,并使用IntelliJ。每当我创建一个新类,然后添加getter和setter时。IDE向字段添加下划线。
由于typescript语法似乎可以被IDE自动识别,但却以这种方式创建字段,因此我认为这是一种最佳实践,但我也读到过这样做是不应该的。
IDE为什么要这样做?我应该允许它为一个有角度的项目这样做吗?谢谢你的帮助!
在创建getter和setter之前
export class Test {
hello:string;
world:string;
}
在创建getter和setter之后
export class Test {
private _hello:string;
private _world:string;
get hello(): string {
return this._hello;
}
set hello(value: string) {
this._hello = value;
}
get world(): string {
return this._world;
}
set world(value: string) {
this._world = value;
}
}
getter/setter的名称不能与属性名称匹配-以下操作将不起作用:
class A {
get world() {
return this.world;
}
}
因此,一般的模式是将内部属性命名为setter/getter,就像setter/getter一样,只使用下划线的版本:
class A {
get world() {
return this._world;
}
}
由于JS和TS缺乏运行时封装,下划线通常表示内部/私有/封装的属性/变量。
但没有任何东西迫使您使用下划线。如果以不同的方式命名getter/setter,则可以避免添加下划线:
class A {
get getWorld() {
return this.world;
}
}
问题内容: 我正在使用wtforms(和flask)生成动态表单。我想向正在生成的字段中添加一些自定义的CSS类,但是到目前为止,我一直无法这样做。使用在这里找到的答案,我尝试使用自定义小部件来添加此功能。它的实现方式与该问题的答案几乎完全相同: 在View中,我这样做是为了创建字段(ClassedTextField是从表单导入的,而f是基本表单的实例): 表单的其余部分均已正确创建,但此jinj
问题内容: 我有一个示例类,如下所示: 稍后,当我尝试这样做时: 我收到一条错误消息,说名称字段不存在。为什么? 问题答案: 因为 类型 的变量是(在 运行时类型 的的 对象 ,在所述变量是实现匿名类的这也是一个 亚型 的)… …并且该类型没有该成员。因此,出现编译错误。(请记住,该变量可以包含符合的任何对象,即使没有的对象也是如此,因此编译器会拒绝不是类型安全的代码。) 编辑:对于一种解决方案,
错误: 代码: 自<代码>列表
问题内容: 有人可以向我解释为什么在JDK 7中添加了此功能以及它如何工作吗? 在浏览JDK 7的新功能时,我发现了以下代码。 问题答案: 这用于对数字中的数字进行分组(例如信用卡等) 从Oracle网站: 在Java SE 7和更高版本中,数字文字中数字之间的任意位置都可以出现任何数量的下划线字符(_)。例如,此功能使您可以将数字文字中的数字组分开,这可以提高代码的可读性。 例如,如果您的代码包
问题内容: 我正在做一个redux教程,并且看到这样的呼叫: 在其他地方定义为: 下划线是什么“ _”?为什么使用它? 问题答案: 这是私有方法和变量的约定。在JavaScript中,没有类的真正隐私。 这意味着您不应在对象之外使用这些方法(以“ ” 开头)。从技术上当然可以,但是“ ”表示您不应该这样做。
在Laravel 5.0中,这样的代码用于名称调整/加载类: 然而,我在Laravel 5.1中看到了这一点 我的问题是:与此相比,此有什么好处,我应该在何时将附加到类名? 有任何地方我可以找到这个PHP留档?