首页 > 解决方案 > Typescript getter/setter 命名约定

问题描述

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

getFoo()

setFoo()

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

get foo()

set foo()

问题

标签: angulartypescriptnaming-conventions

解决方案


我们可以使用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 类型的情况将很有用。

get 和 set 的后缀名应该相同。我们可以通过只调用名称本身来访问它。例如,mark来自上面的代码。

有关获取、设置的更多信息,请访问 typescript文档


推荐阅读