export function logParameter() {
return function(target: Object, propertyName: string) {
// property value
let _val = target[propertyName];
console.log('_val',_val)
// property getter method
const getter = () => {
console.log(`Get: ${propertyName} => ${_val}`);
return _val;
};
// property setter method
const setter = newVal => {
console.log(`Set: ${propertyName} => ${newVal}`);
_val = newVal;
};
// Delete property.
if (delete this[propertyName]) {
// Create new property with getter and setter
Object.defineProperty(target, propertyName, {
get: getter,
set: setter,
enumerable: true,
configurable: true
});
}
}
}
fdescribe('FormulaLoad test', () => {
it('decorat', () => {
class Run {
@logParameter()
name: string = '12';
}
// @FormulaCollect('PLUS', 35)
// class PLUS {
// run(exp: any, idx) {
// exp.splice(idx - 1, 2, exp[idx - 1]);
// return idx - 2;
// }
// }
let temp1 = new Run();
console.log(temp1);
});
});
报错 TypeError: Cannot convert undefined or null to object, 这句引起的
如果我把export function logParameter的export 删除又可以正常执行
放心吧。绝对不是导出导致的。应该是你的装饰器的错误。
为此。我还特地去试了。。