[英]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.