Typescript私有属性封装约定

时间:2018-02-14 21:04:40

标签: angular typescript encapsulation

问题:在Typescript中命名私有属性的最佳做法是什么?一个规则是否应该为该属性创建“获取和设置”?

阅读以下链接让我暂停了我认为编码Typescript的好习惯:https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines

我理解他的编码指南的限定符,这不是一个规定性的指导原则,但是,他关于命名私有属性的约定在我的脑海中提出了关于在Typescript中正确封装和使用私有属性的问题。我一直遵循的约定是使用下划线的前缀命名私有属性,然后创建一个get和set,用于分配或从该属性获取值。回到安德斯的德尔菲日,约会使它成为一个财产,而不仅仅是另一个变量。该属性赋予其允许工具的特征。

示例:

…
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)有一些价值。但是,提出这个问题的目的不是“我的意见”。我想知道更多经验角度/打字稿开发人员认为是处理Typescript私有属性的最佳实践。更好的是链接到一个网站(具有可信度)的“最佳实践”来处理私有财产。

提前感谢您对此问题的任何帮助。

1 个答案:

答案 0 :(得分:1)

找到我想要的答案:

https://angular.io/guide/styleguide

属性和方法 风格03-04 使用较低的驼峰案例来命名属性和方法。

避免使用下划线为私有属性和方法添加前缀。

为什么呢?遵循传统的属性和方法思想。

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

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

相关问题