打字稿 getter/setter 命名约定

The*_*ger 5 naming-conventions typescript angular

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

getFoo()

setFoo()
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不是最佳实践,而是我应该使用约定

get foo()

set foo()
Run Code Online (Sandbox Code Playgroud)

问题

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

mad*_*mar 2

我们可以使用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;
   }
}
Run Code Online (Sandbox Code Playgroud)

在这里,每当我们设置标记时,通行证就会更新。不行,需要单独更新。在这种情况下,类型的 get、set 将很有用。

get 和 set 的后缀应具有相同的名称。我们只需调用名称本身即可访问它。示例,mark来自上面的代码。

有关 get、set 的更多信息,请访问 typescript文档