📅  最后修改于: 2021-01-11 12:40:32             🧑  作者: Mango
在TypeScript中,accessor属性提供了一种访问和设置类成员的方法。它有以下两种方法。
getter访问器属性是用于检索变量值的常规方法。在对象字面量,用“ get ”关键字表示的getter属性。它可以是公共的,私有的和受保护的。
句法
get propName() {
// getter, the code executed on getting obj.propName
},
例
class MyDrawing {
length: number = 20;
breadth: string = 15;
get rectangle() {
return this.length * this.breadth;
}
}
console.log(new MyDrawing().square);
设置访问器属性是用于更新变量值的常规方法。在对象字面量,setter属性由“ set ”关键字表示。
句法
set propName(value) {
// setter, the code executed on setting obj.propName = value
}
例
set displayFullName {
const parts = value.split ('');
this.pname = firstname[0];
this.pname = firstname[1];
}
person displayFullName = "Abhishek Mishra"
console.log(student);
从下面的示例中我们可以了解getter和setter的概念。
let passcode = "secret passcode";
class Student {
private _fullName: string;
get fullName(): string {
return this._fullName;
}
set fullName(newName: string) {
if (passcode && passcode == "secret passcode") {
this._fullName = newName;
}
else {
console.log("Unauthorized update of student detail!");
}
}
}
let stud = new Student();
stud.fullName = "Virat Kohli";
if (stud.fullName) {
console.log(stud.fullName);
}
输出:
现在,如果我们更改第一行: let passcode =“ secret_passcode” ;
然后,输出:未经授权更新学生详细信息!
getter和setter的命名约定
setter和getter方法的命名约定应如下:
getXX()和setXX()
在这里,XX是变量的名称。例如:
private String name;
然后,setter和getter将是:
public void setName(String name) { }
public String getName() { }