簡體   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