类里访问器的装饰器

类的访问器指的就是 getter和setter访问器
  • 类的访问器的装饰器,接收成参数跟类的方法的装饰器的参数是一样的。
function visitDecorator(target: any, key: string,descriptor:PropertyDescriptor) {

};

class Test{
  private _name: string;
  constructor(name: string) {
    this._name = name;
  }
  // getter访问器
  get name() {
    return this._name;
  }
  @visitDecorator
  //  setter访问器
  set name(name:string) {
    this._name = name;
  }
}

const test = new Test('yang');
test.name = '123';
console.log(test.name); //123
  • 如果我们在装饰器里,修改descriptor的writable的值为false,也就是说setter访问器是不可修改的。我们再运行就会报错。
function visitDecorator(target: any, key: string,descriptor:PropertyDescriptor) {
  descriptor.writable = false;
};

const test = new Test('yang');
test.name = '1231313';
console.log(test.name); // 报错
注意:getter和setter不能用同名的装饰器

你可能感兴趣的:(类里访问器的装饰器)