我正在尝试创建对象类型的变量,并使用属性对其进行初始化。但是当我尝试访问该属性时,它显示错误“属性____在对象类型上不存在”。我已经搜索过,发现有3种类型的object,Object和{}。我可以使用{}访问我的属性,但是不能使用object和Object。
export class customDirective {
configg:Object={
qSelector:'.card-text'
};
@HostListener('mouseover') onmouseover(){
var element =this.el.nativeElement.querySelector(this.configg.qSelector);
this.ren.setElementStyle(element, 'display', 'block');
this.isHovering = true;
}
}
答案 0 :(得分:1)
使用 []
访问对象类型的属性即this.configg['qSelector']
不是this.configg.qSelector
export class customDirective {
configg:Object={
qSelector:'.card-text'
};
@HostListener('mouseover') onmouseover(){
var element =this.el.nativeElement.querySelector(this.configg['qSelector']);
this.ren.setElementStyle(element, 'display', 'block');
this.isHovering = true;
}
}
答案 1 :(得分:0)
Object
是一个实际的类:https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object。它定义了某些属性,而qSelector
不是其中之一。
要定义可以设置任何属性而不会抱怨TypeScript的任意对象,请使用any
类型(或完全不包含类型定义):
configg: any = {
qSelector:'.card-text'
};