我来自Java背景,习惯于在我的Typescript / Angular组件类中使用getter / setter命名约定。
getFoo()
setFoo()
然而,看来这可能不是最佳实践,而我应该使用约定。
get foo()
set foo()
问题
- 这只是纯粹的装饰吗?有什么好处吗?我不明白为什么会受欢迎,因为据我了解,它与其他方法使用的命名约定不一致。
- 是否有正式的样式指南建议此做法?
我来自Java背景,习惯于在我的Typescript / Angular组件类中使用getter / setter命名约定。
getFoo()
setFoo()
get foo()
set foo()
问题
get
和set
。例子: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
。
有关get、set的更多信息,请访问typescript documentation。
_mark: Mark
应该改为 _mark?: Mark
,并且 get mark()
应该在返回之前检查 _mark
是否已设置,或者声明为 : Mark | undefined
。 - amphetamachinetype-script是java-script的超集,所有的语言语法都非常类似于ECMAScript标准,因为程序员在编写java-script应用程序时感觉更好。
在TS和JS上设置、获取属性非常相似
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;
}
}
getFoo
只是一个普通函数。在get foo
中,get
是getter的保留关键字。https://www.typescriptlang.org/docs/handbook/classes.html - Roberto Zvjerković