上一章TypeScript教程请查看:TypeScript三个访问修饰符
在TypeScript中,属性访问器提供了访问和设置类成员的方法。它有两个方法,如下所示。
- getter
- setter
语法
get propName() {
// getter, 获取obj.propName时执行的代码
},
例子
class MyDrawing {
length: number = 20;
breadth: string = 15;
get rectangle() {
return this.length * this.breadth;
}
}
console.log(new MyDrawing().square);
Settersetter访问器属性是用于更新变量值的常规方法。在object字面量中,setter属性由“set”关键字表示。
语法
set propName(value) {
// setter, 在设置obj.propName = value 时执行的代码
}
例子
set displayFullName {
const parts = value.split ('');
this.pname = firstname[0];
this.pname = firstname[1];
}
person displayFullName = "La Oreja"
console.log(student);
注意:
- getter和setter使我们能够更好地控制如何访问每个对象上的成员。
- TypeScript访问器要求我们将编译器设置为输出ECMAScript 5或更高。它不支持ECMAScript 5。
- 具有get属性而没有任何set属性的访问器自动被认为是只读的。它在从我们的代码生成.d.ts文件时很有用。
例子
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("未经授权更新学生详细资料!");
}
}
}let stud = new Student();
stud.fullName = "La Oreja";
if (stud.fullName) {
console.log(stud.fullName);
}
现在,如果我们改变第一行:let passcode = “ secret_passcode” ;
然后,输出:未经授权更新学生详细资料!
getter和setter的命名约定
setter和getter方法的命名约定如下:
getXX()和setXX ()
这里,XX是变量的名称。例如:
private String name;
【TypeScript属性访问器 – TypeScript开发教程】然后setter和getter是:
public void setName(String name) { }
public String getName() { }
推荐阅读
- TypeScript函数使用详解 – TypeScript开发教程
- TypeScript三个访问修饰符 – TypeScript开发教程
- TypeScript集合set用法 – TypeScript开发教程
- TypeScript map用法和操作 – TypeScript开发教程
- TypeScript使用forEach方法遍历 – TypeScript开发教程
- TypeScript枚举类型用法 – TypeScript开发教程
- TypeScript三种迭代语句 – TypeScript开发教程
- TypeScript while循环语句 – TypeScript开发教程
- TypeScript switch分支语句 – TypeScript开发教程