typescript - Javascript member variable undefined error though correctly defined -
i trying copy properties of 1 member variable member variable. both of same type. when call 'trackchanges' browser shows error:
typeerror: cannot read property 'hasownproperty' of undefined
can tell why this.originaldata isn't known @ runtime?
export class myclass { data: imydata; originaldata: imydata; trackchanges() { (const attr in this.data) { if (this.originaldata.hasownproperty(attr)) { this.originaldata[attr] = this.data[attr]; } } } constructor() { this.data.field1 = '123'; this.data.field2 = 12; }
nowhere in code assign value member variables. defining in typescript tells compiler members exist on object assign value, either using initializer when declare it, in constructor, method, or externally accessing setting member:
export class myclass { data: imydata = {}; // initialize using object literal when declaring originaldata: imydata = {}; // initialize using object literal when declaring constructor(data: imydata = {}) { this.originaldata = object.assign({}, this.data) // create copy of original , assign field this.data = data; // assign data field } trackchanges() { (const attr in this.data) { if (this.originaldata.hasownproperty(attr)) { this.originaldata[attr] = this.data[attr]; } } } } var myinstance = new myclass({ name: "jon"}); myinstance.data = {}; // external assignment
Comments
Post a Comment