Jes*_*ias 6 javascript typescript ecmascript-6 es6-class typescript2.0
我有一堂课
class Email {
private _from: string;
private _to: Array<string>;
private _subject: string;
}
Run Code Online (Sandbox Code Playgroud)
它将创建一个类似于以下内容的电子邮件对象:
{
_from:'',
_to:'',
_subject:''
}
Run Code Online (Sandbox Code Playgroud)
这对我来说有点奇怪,因为我不能直接使用此对象发送给函数。取而代之的是,我必须转换对象,使其不带有下划线。因此,如何使用下划线约定或必须转换对象。
编辑:如果我确实删除'_'
如果我们命名不带下划线的私有变量,如何命名获取器和设置器?一个叫做Typescript工具箱的VSCode插件会创建这样的东西
public get $subject(): string {
return this.subject;
}
Run Code Online (Sandbox Code Playgroud)
$是个好习惯吗?
Ali*_*avi 14
那些说不能使用“_”的人,对于他们来说,这里有一些来自TypeScript 站点的代码:
class Employee {
private _fullName: string;
get fullName(): string {
return this._fullName;
}
this._fullName = ......
}
Run Code Online (Sandbox Code Playgroud)
关于Stackoverflow 的同样问题,你应该看看它,尤其是答案。
暂时,如果接受了,我们不应该使用_,那么还有什么更好的方法呢?
让我们以您的电子邮件为例,如果我们不使用 _ ,我们将是这样的:
member: to, get/set: emailTo
member: from get/set: emailFrom
Run Code Online (Sandbox Code Playgroud)
可能你能想到一些更好的名字,但每次你都需要思考,这在开发者世界中并不常见!
对属性使用 _ 和相同的名称很容易检查代码,否则我们将保持将哪个属性映射到哪个成员。
但是:如果您被公司的领导强迫,那么您可以$
在没有它的情况下将其用于会员和财产;不是规则,而是简单的方法:
class Employee {
private fullName$: string;
get fullName(): string {
return this.fullName$;
}
this.fullName$ = ......
}
Run Code Online (Sandbox Code Playgroud)
这是你的选择!!!
私有字段的下划线“ _”前缀已过期。最好以可读和友好的方式命名变量。
请在此处查看Microsoft Typescript编码约定
- 不要将“ _”用作私有属性的前缀。
只是根据需要命名私有变量,但不要使用_
。您可以创建自己的标准并坚持下去。
设置器和获取器与其他任何函数一样,因此可以遵循方法命名约定进行命名。
不要将“ _”用作私有属性的前缀。
尽可能在名称中使用整个单词。