打字稿:成员的下划线约定
Typescript : underscore convention for members
我有一个 class 电子邮件
class Email {
private _from: string;
private _to: Array<string>;
private _subject: string;
}
它将创建一个类似于以下内容的电子邮件对象:
{
_from:'',
_to:'',
_subject:''
}
这对我来说似乎有点奇怪,因为我不能直接使用此对象发送给函数。相反,我必须转换对象,使其没有下划线。那么我该如何使用下划线约定或者我是否必须转换对象。
编辑:如果我确实删除了“_”
如果命名私有变量不带下划线,如何命名getters和setters?一个名为 Typescript toolbox 的 VSCode 插件创建了这样的东西
public get $subject(): string {
return this.subject;
}
$ 是一个好的约定吗?
私有字段的下划线“_”前缀已过时。最好以可读和友好的方式命名您的变量。
参见 Microsoft Typescript 编码约定 here
- Do not use "_" as a prefix for private properties.
根据需要命名您的私有变量,但不要使用 _
。您可以创建自己的标准并坚持下去。
Setter 和 getter 与任何其他函数一样,因此您可以遵循方法命名约定。
Do not use "_" as a prefix for private properties.
Use whole words in names when possible.
This is a subjective opinion, feel free to use _
if you must.
Edit: $
can be used to prefix variable names. In my everyday use case I use it in prefixing observable (rxJS) variables.
编辑:
如果你有 getter,那么你可以使用 _
命名字段以避免名称冲突。
那些说不能使用“_”的人,这里有一些来自 TypeScript site 的代码:
class Employee {
private _fullName: string;
get fullName(): string {
return this._fullName;
}
this._fullName = ......
}
同样的问题,你应该看看它,尤其是答案。
暂时接受的话,应该不用_,那还有什么更好的方法吗?
让我们以您的电子邮件为例,如果我们不使用 _ 那么,我们将是这样的:
member: to, get/set: emailTo
member: from get/set: emailFrom
也许你可以想一些更好的名字,但每次你都需要考虑,这在开发者世界中并不常见!
对 属性 使用 _ 和相同的名称很容易检查代码,否则我们将继续映射哪个 属性 到哪个成员。
但是: 如果您被公司领导强迫,那么您可以使用 $
作为成员,而 属性 不使用它;不是规则而是简单的方法:
class Employee {
private fullName$: string;
get fullName(): string {
return this.fullName$;
}
this.fullName$ = ......
}
选择权在你手上!!!
在变量名中使用下划线作为前缀或后缀通常不是好的做法。
见Google Typescript Style Guide。本指南旨在作为样式的说明性指南,这与另一个答案中链接的 Microsoft 样式指南不同,后者主要供 TypeScript 存储库的贡献者使用。
_ prefix/suffix: Identifiers must not use _ as a prefix or suffix
我有一个 class 电子邮件
class Email {
private _from: string;
private _to: Array<string>;
private _subject: string;
}
它将创建一个类似于以下内容的电子邮件对象:
{
_from:'',
_to:'',
_subject:''
}
这对我来说似乎有点奇怪,因为我不能直接使用此对象发送给函数。相反,我必须转换对象,使其没有下划线。那么我该如何使用下划线约定或者我是否必须转换对象。
编辑:如果我确实删除了“_”
如果命名私有变量不带下划线,如何命名getters和setters?一个名为 Typescript toolbox 的 VSCode 插件创建了这样的东西
public get $subject(): string {
return this.subject;
}
$ 是一个好的约定吗?
私有字段的下划线“_”前缀已过时。最好以可读和友好的方式命名您的变量。
参见 Microsoft Typescript 编码约定 here
- Do not use "_" as a prefix for private properties.
根据需要命名您的私有变量,但不要使用 _
。您可以创建自己的标准并坚持下去。
Setter 和 getter 与任何其他函数一样,因此您可以遵循方法命名约定。
Do not use "_" as a prefix for private properties.
Use whole words in names when possible.
This is a subjective opinion, feel free to use
_
if you must.
Edit:
$
can be used to prefix variable names. In my everyday use case I use it in prefixing observable (rxJS) variables.
编辑:
如果你有 getter,那么你可以使用 _
命名字段以避免名称冲突。
那些说不能使用“_”的人,这里有一些来自 TypeScript site 的代码:
class Employee {
private _fullName: string;
get fullName(): string {
return this._fullName;
}
this._fullName = ......
}
同样的问题
暂时接受的话,应该不用_,那还有什么更好的方法吗?
让我们以您的电子邮件为例,如果我们不使用 _ 那么,我们将是这样的:
member: to, get/set: emailTo
member: from get/set: emailFrom
也许你可以想一些更好的名字,但每次你都需要考虑,这在开发者世界中并不常见!
对 属性 使用 _ 和相同的名称很容易检查代码,否则我们将继续映射哪个 属性 到哪个成员。
但是: 如果您被公司领导强迫,那么您可以使用 $
作为成员,而 属性 不使用它;不是规则而是简单的方法:
class Employee {
private fullName$: string;
get fullName(): string {
return this.fullName$;
}
this.fullName$ = ......
}
选择权在你手上!!!
在变量名中使用下划线作为前缀或后缀通常不是好的做法。
见Google Typescript Style Guide。本指南旨在作为样式的说明性指南,这与另一个答案中链接的 Microsoft 样式指南不同,后者主要供 TypeScript 存储库的贡献者使用。
_ prefix/suffix: Identifiers must not use _ as a prefix or suffix