TypeScript TS类 getter setter使用和意义

942 阅读1分钟

getter setter使用和意义

当需要控制类中某一个属性时直接在构造函数中判断会 显得冗杂

使用 getter setter 可以对某一个属性加一些说明

使用 getter setter 可以对某一个属性进行控制

class People {
  name: string;
  _age!: number;
  addr: string;
  
  static count: number = 10;
  
  constructor(_name: string, _addr: string) {
    this.name = _name;
    this.age = _age;
    this.addr = _addr;
    
    People.count++;
  }
  set age(val:number) {
    if(val > 10 && val < 128) {
      this._age = val;
    } else {
      throw new Error("年龄不在合适的范围");
    }
  }
  get age() {
    return this._age
  }
  doEat(){}
  doStep(){}
}

let p1 = new People("wangwu", "上海市");
p1._age = 300;