Javascript 如果在Typescript对象中未定义setter或属性,则不执行任何操作?

Javascript 如果在Typescript对象中未定义setter或属性,则不执行任何操作?,javascript,typescript,Javascript,Typescript,是否可以检查Typescript对象中是否没有定义setter 我有以下代码: class Sample { private _name; set name(value: string) { value = value.trim(); if(value.length > 0) this._name = value; } get name(): string { return this._name; } } 我通过html表单中的

是否可以检查Typescript对象中是否没有定义setter

我有以下代码:

class Sample {
  private _name;

  set name(value: string) {
    value = value.trim();
    if(value.length > 0)
      this._name = value;
  }

  get name(): string {
    return this._name;
  }
}
我通过html表单中的更改侦听器设置值

问题是,如果我有一个表单元素显示在未定义的对象属性上,它只是简单地设置它

sample = new Sample();
sample.name = "myName";
sample.myTest = true;
返回如下所示的对象:

{
  name: "myName";
  myTest: true;
}
如何防止未定义的属性不被设置

使用
sample.hasOwnProperty(propertyName)
allways返回false
sample.hasOwnProperty(“”+propertyName)
也返回false


sample[propertyName]===undefined
在sample.name上返回true,因为在初始化对象时没有设置值。

您可以检查实例
构造函数。prototype
是否具有以下属性:

let sample = new Sample();
console.log(sample.constructor.prototype.hasOwnProperty("name")); // true

let object = {};
console.log(object.constructor.prototype.hasOwnProperty("name")); // false

()

您可以检查实例
构造函数.prototype
是否具有以下属性:

let sample = new Sample();
console.log(sample.constructor.prototype.hasOwnProperty("name")); // true

let object = {};
console.log(object.constructor.prototype.hasOwnProperty("name")); // false

()

可能重复:@spender我已经测试了它,但在我的案例中不起作用,因为我不知道我的应用程序的类类型。activeObject property可能重复:@spender我已经测试了它,但在我的案例中不起作用,因为我不知道我的应用程序的类类型。activeObject propertyNice job gever。谢谢,工作完美。有时你看不到简单的东西。谢谢,工作做得很好。有时你看不到简单的事情