打字稿getter / setter命名约定

时间:2019-06-27 11:28:07

标签: angular typescript naming-conventions

我来自Java,我默认在我熟悉的Typescript / Angular组件类中使用getter / setter命名约定。

getFoo()

setFoo()

但是,这似乎不是最佳做法,但是我应该使用约定

get foo()

set foo()

问题

  • 这纯粹是化妆品吗?有什么好处吗?我不明白为什么会赞成这样做,因为据我了解,这与用于其他方法的命名约定不一致。
  • 是否有正式的风格指南推荐这种做法?

2 个答案:

答案 0 :(得分:1)

我们可以使用getset在访问值时需要实现一些约束的地方。

来自Typescript文档:

  

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的后缀应具有相同的名称。我们可以仅通过调用名称本身来访问它。例如,以上代码中的mark

有关获取的更多信息,请设置访问打字稿documentation

答案 1 :(得分:1)

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;
    }
}