📜  TypeScript访问器

📅  最后修改于: 2021-01-11 12:40:32             🧑  作者: Mango

TypeScript访问器

在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() { }