类的访问器指的就是 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不能用同名的装饰器
网友评论