我正在尝试创建一个对象类型的变量,并使用属性对其进行初始化。但是当我试图访问该属性时,它显示错误‘属性____不存在于类型对象上’。我已经搜索过了,发现有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;
}
}发布于 2018-08-30 15:17:59
使用 访问对象类型的属性
即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;
}
}发布于 2018-08-30 15:12:55
Object是一个实际的类:https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object。它定义了某些属性,而qSelector不在其中。
要定义一个可以设置任意属性而不会出现TypeScript错误的任意对象,请使用any类型(或者完全省略类型定义):
configg: any = {
qSelector:'.card-text'
};https://stackoverflow.com/questions/52091114
复制相似问题