1
0
Fork 0
freesewing/lib/pointlist.ts
2018-07-16 15:20:50 +00:00

35 lines
712 B
TypeScript

import { Point } from './point'
function pointDecorator(target: any, key: string) {
// property value
var _val: Point = this[key];
// property getter
var getter = function (): Point {
console.log(`Get: ${key} => ${_val}`);
return _val;
};
// property setter
var setter = function (newVal: Point): void {
console.log(`Set: ${key} => ${newVal}`);
_val = newVal;
};
// Delete property.
if (delete this[key]) {
// Create new property with getter and setter
Object.defineProperty(target, key, {
get: getter,
set: setter,
enumerable: true,
configurable: true
});
}
}
export class PointList {
@pointDecorator
[index: string]: Point;
}