繁体   English   中英

打字稿私有属性封装约定

[英]Typescript private properties encapsulation conventions

问题:在Typescript中命名私有属性的最佳做法是什么,通常应该为该属性创建“获取并设置”吗?

阅读以下链接使我停下来,我认为这是编码Typescript的一个好习惯: https : //github.com/Microsoft/TypeScript/wiki/Coding-guidelines

我理解他对编码准则的限定词,即这不是一个规范性准则,但是,他关于命名私有属性的约定在我看来引发了有关在Typescript中正确封装和使用私有属性的问题。 我一直遵循的约定是用下划线的前缀命名私有属性,然后创建用于从该属性分配或获取值的get和set。 早在安德斯(Anders)的德尔福时代,约定就是使它成为属性的原因,而不仅仅是另一个变量。 该属性赋予了它允许工具使用的特征。

例:

…
private _progress: IImportInfo[];
…
get progress(): IImportInfo[] {
  return this._progress;
}

set progress(value: IImportInfo[]) {
  this._progress = value;
}
…

因此,从html文件中,您可以像这样从属性中获取值:

<li *ngFor="let item of progress">

但是,您可以这样访问它:

<li *ngFor="let item of _progress">

因此,允许从外部访问私有变量。 通常不会使用私有变量获得的封装性质不存在,但是,遵守封装规则(IMO)仍有一定价值。 但是,提出这个问题的目的不是关于“我的意见”。 我想知道更多有经验的angular / typescript开发人员认为是处理Typescript私有属性的最佳实践。 更好的是,链接到具有“最佳做法”的网站(具有信誉)来处理私有财产。

在此先感谢您的帮助。

找到了我一直在寻找的答案:

https://angular.io/guide/styleguide

属性和方法样式03-04请勿使用小写驼峰来命名属性和方法。

避免在私有属性和方法前加上下划线。

为什么? 遵循有关属性和方法的常规思路。

为什么? JavaScript缺少真正的私有属性或方法。

为什么? 使用TypeScript工具可以轻松识别私有属性与公共属性和方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM