Typescript 私有属性封装约定
Typescript private properties encapsulation conventions
问题:在 Typescript 中命名私有属性的最佳实践是什么?通常应该为此创建一个“get and set”属性?
阅读以下内容 link 让我停下来思考我认为对 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 私有属性的最佳实践。更好的是 link 到一个处理私有财产的“最佳实践”的网站(具有可信度)。
提前感谢您对此问题的任何帮助。
找到了我要找的答案:
https://angular.io/guide/styleguide
属性和方法
款式03-04
请使用小驼峰命名属性和方法。
避免在私有属性和方法前加上下划线。
为什么?遵循属性和方法的常规思维。
为什么? JavaScript 缺少真正的私有 属性 或方法。
为什么? TypeScript 工具可以轻松识别私有与 public 属性和方法。
问题:在 Typescript 中命名私有属性的最佳实践是什么?通常应该为此创建一个“get and set”属性?
阅读以下内容 link 让我停下来思考我认为对 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 私有属性的最佳实践。更好的是 link 到一个处理私有财产的“最佳实践”的网站(具有可信度)。
提前感谢您对此问题的任何帮助。
找到了我要找的答案:
https://angular.io/guide/styleguide
属性和方法 款式03-04 请使用小驼峰命名属性和方法。
避免在私有属性和方法前加上下划线。
为什么?遵循属性和方法的常规思维。
为什么? JavaScript 缺少真正的私有 属性 或方法。
为什么? TypeScript 工具可以轻松识别私有与 public 属性和方法。