PropertyDecorator设置set,get方法怎么没起作用呢?

以下代码在node.js里面测试成功,但是为什么在引擎里面没有成功呢?

const test: PropertyDecorator = function (target: any, propertyKey: string | symbol) {
    Object.defineProperty(target, propertyKey, {
        get() {
            console.log('get')
            return this['app'];
        },
        set(v) {
            console.log('set')
            this['app'] = v;
        }
    })
}

class A {
    @test
    age: number = 0;
}

console.log(new A().age)

在引擎里面我需要修改以下代码,才能让get和set起作用:

class A {
    @test
    age: number = 0;
    constructor() {
        delete this.age;
    }
}

这是为什么呢?是否我对属性装饰器的使用有误?但是同样的代码在其他地方又是可行的

原本是想通过给number类型的属性直接加装饰器,然后在set方法里面加密、get方法里面解密,实现快速加密一个属性的功能。原本在其他地方已经测试成功了,但是搬到引擎里面没成功,有点搞不懂

谢谢大佬 :+1:

1赞