es6中 使用class里面的set和get 用法
在一些项目中,如果一个字段,后端只返回0或1的时候,但是你业务逻辑中要将0和1对应转换成true或者false的时候,如果直接转的话,保存的时候转后端又要写一次,非常麻烦。export class person{public active: number; // 用户状态是不是激活 1是激活,0是没有public constructor (obj?: object) {Object.assign(
·
在一些项目中,如果一个字段,后端只返回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字符串,就可以使用这种方法
更多推荐
已为社区贡献3条内容
所有评论(0)