TypeScript属性访问器 – TypeScript开发教程

上一章TypeScript教程请查看:TypeScript三个访问修饰符
在TypeScript中,属性访问器提供了访问和设置类成员的方法。它有两个方法,如下所示。

  • getter
  • setter
gettergetter访问器属性是用于检索变量值的常规方法。在object字面量中,用“get”关键字表示的getter属性。它可以是公共的、私有的和受保护的。
语法
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文件时很有用。
我们可以从下面的例子中理解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("未经授权更新学生详细资料!"); } } }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() { }

    推荐阅读