【发布时间】:2018-07-25 13:22:52
【问题描述】:
问题:在 Typescript 中命名私有属性的最佳做法是什么?作为一项规则,是否应该为该属性创建“获取和设置”?
阅读以下链接让我停下来思考我认为编写 Typescript 的好习惯:https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines
我理解他对他的编码指南的限定词,这不是一个规定性指南,但是,他关于命名私有属性的约定在我的脑海中提出了关于在 Typescript 中正确封装和使用私有属性的问题。我一直遵循的约定是使用下划线前缀命名私有属性,然后创建一个 get 和 set,用于从该属性分配或获取值。回到 Anders 的 Delphi 时代,这种约定使它成为一种属性,而不仅仅是另一个变量。该属性赋予了它允许加工的特性。
例子:
…
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 私有属性的最佳实践是什么。最好是指向处理私有财产的“最佳实践”的网站(具有可信度)的链接。
在此先感谢您对此问题的任何帮助。
【问题讨论】:
标签: angular typescript encapsulation