在一些项目中,如果一个字段,后端只返回0或1的时候,但是你业务逻辑中要将0和1对应转换成true或者false的时候,如果直接转的话,保存的时候转后端又要写一次,非常麻烦。

export class Person {
  public active = 0 // 用户状态是不是激活 1是激活,0是没有

  public constructor(obj?: object) {
    Object.assign(this, obj)
  }
  public get activeToBoolean(): boolean {
    return this.active === 1
  }

  public set activeToBoolean(val: boolean) {
    this.active = val ? 1 : 0
  }
}

用的时候直接用它的实例

const p = new Person({ active: 1 })
console.log(p.activeToBoolean) // 输出 true
p.active = 0
console.log(p.activeToBoolean) // 输出 false

p.activeToBoolean = true
console.log(p.active) // 1

这里我们可以发现set 和 get 相当于 创建一个属性(activeToBoolean)让Class中某一个属性(active)进行一些规则转化。

在这里插入图片描述
类似的 siteLIst是对应使用数组方法,但是后端返回是site字符串,就可以使用这种方法

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐