簡體   English   中英

打字稿 getter/setter 命名約定

[英]Typescript getter/setter naming convention

我來自 Java 背景,我默認在我熟悉的 Typescript/Angular 組件類中使用 getter/setter 命名約定。

getFoo()

setFoo()

但是,這似乎不是最佳實踐,而是我應該使用約定

get foo()

set foo()

問題

  • 這純粹是化妝品嗎? 有什么好處嗎? 我不明白為什么這會受到青睞,因為據我所知,它與用於其他方法的命名約定不一致。
  • 是否有正式的風格指南推薦這種做法?

我們可以使用getset在訪問值時需要實現一些約束的地方。

從打字稿文檔:

TypeScript 支持 getter/setter 作為攔截對對象成員的訪問的一種方式。 這使您可以更精細地控制如何在每個對象上訪問成員。

例子:

class StudentMark {
    isPass: boolean;
    _mark: Mark;
    set mark(value: Mark) {
        if (value.subject1 > 35 && value.subject2 > 35&& value.subject3 > 35) { 
             this.isPass = true;
        } else {
             this.isPass = false;
        }
        this._mark = value;
    }
   get mark(): Mark {
       return this._mark;
   }
}

在這里,每當我們設置標記時,通行證都會更新。 不行,需要單獨更新。 在這種情況下,get、set 類型的情況會很有用。

get 和 set 的后綴應該具有相同的名稱。 我們可以通過僅調用名稱本身來訪問它。 例如,從上面的代碼中mark

有關獲取、設置的更多信息,請訪問 typescript 文檔

type-script 是 java-script 的超集,所有語言語法都與ECMAScript標准非常相似,因為程序員感覺更好地編寫 java-script 應用程序。

TS 和 JS 上的 SET、GET 屬性非常相似

JS

class JSExample {
    constructor() {
        this._val = "V";
    }
    get val() {
        return this._val;
    }
    set val($v) {
        this._val = $v;
    }
}

TS

class TSExample {
    _val = "V";

    get val(): string {
        return this._val;
    }
    set val($v: string) {
        this._val = $v;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM